본문 바로가기

프로그래밍

파일질라 FTP 서버 사용시 코드셋 깨질때..

파일질라서버를 사용하다보니 클라이언트가 UTF8을 지원하지 않는경우 문자셋이 죄다 깨진다.

이럴땐 차라리 ASCII 가 나은듯하다..


ControlSocket.cpp 파일에서 m_useUTF8 를 false로 바꿔주면 된다.

filezilla_server_0.9.18_disable_utf8_by_default.patch

---------------------------------------------------------------
diff -Nur source/ControlSocket.cpp source.patch/ControlSocket.cpp
--- source/ControlSocket.cpp Tue May 30 22:06:00 2006
+++ source.patch/ControlSocket.cpp Tue Jul  4 10:39:43 2006
@@ -84,7 +84,9 @@
  m_antiHammeringWaitTime = 0;
  m_bProtP = false;
 
- m_useUTF8 = true;
+ // change to false, disable it by default
+ // use UTF-8 only after client send OPTS UTF8 ON
+ m_useUTF8 = false;
 }
 
 CControlSocket::~CControlSocket()
@@ -1554,7 +1556,9 @@
  break;
  }
  case COMMAND_SYST:
- Send(_T("215 UNIX emulated by FileZilla"));
+ // non-patched FileZilla Client won't send OPTS UTF8 ON for FileZilla server
+ // so, we need to change the name here to let FileZilla send OPTS UTF8 ON to us
+ Send(_T("215 UNIX emulated by File_Zilla"));
  break;
  case COMMAND_NOOP:
  case COMMAND_NOP: