TMS TDBAdvGrid component에서 UTF-8으로 설정된 DB의 Memo 칼럼의 한글이 깨어질 경우 해결 방법

TMS TDBAdvGrid component에서 UTF-8으로 설정된 DB의 Memo 칼럼의 한글이 깨어질 경우 해결 방법

DBAdvGrid.pas의 아래 코드를

if not ShowMemoFields then
begin
  Value := ‘(MEMO)’
end
else
  Value := aField.AsString;

다음과 같이 수정

if not ShowMemoFields then
begin
  Value := ‘(MEMO)’
end
else
  Value := Utf8ToAnsi(aField.AsString);

ProFTPD 1.3.1 한글 패치 버전

ProFTPD 1.3.1 한글 패치 버전입니다.

ds-106e용(PPC)으로 컴파일 했습니다.
확인하지는 않았지만 같은 프로세서 사용하는 모델은 동작될 거 같습니다. ds-101g+에서도 동작되는 거 확인했습니다.

UTF-8 환경의 서버에 FTP로 한글파일명을 가진 파일을 올려도 깨어지지 않고, 정상적으로 표시됩니다.

모듈 정보는 아래와 같습니다.

Compiled-in modules:
  mod_core.c
  mod_xfer.c
  mod_auth_unix.c
  mod_auth_file.c
  mod_auth.c
  mod_ls.c
  mod_log.c
  mod_site.c
  mod_delay.c
  mod_readme.c
  mod_codeconv.c
  mod_df.c
  mod_cap.c
  mod_ctrls.c
  mod_lang.c

압축 풀면 /usr/local 아래에 설치되며

/usr/local
      |– bin
      |   |– ftpcount
      |   |– ftpdctl
      |   |– ftptop
      |   -- ftpwho
      |-- etc
      |  
— proftpd.conf
      |– sbin
      |   |– ftpshut
      |   |– in.proftpd -> proftpd
      |   -- proftpd
     
— var
          |– proftpd
          |   |– proftpd.delay
          |   |– proftpd.scoreboard
          |   -- proftpd.sock
         
— proftpd.pid

proftpd.conf에 아래와 같이 설정하면 됩니다.

CharsetLocal UTF-8
CharsetRemote CP949

다운로드: http://nethard.fft.kr/bloc/DS-106e/etc_program/?download=proftpd.1.3.1.iconv.tar.gz

참고 사이트: http://orz.miroq.info/archives/5

리눅스 euc-kr 파일명을 utf-8 파일명으로 변환하기

ds-106e(utf-8)에서 euc-kr로 설정된 FTP 서버의 파일을 받으면 윈도우에서 공유 폴더로 접근하면 파일명이 모두 깨어져서 보입니다.
정리하면…
-윈도우에서 공유 폴더로 접근시 -> 깨어짐
-텔넷 클라이언트에 UTF-8 설정 후 접속시 -> 깨어짐
-텔넷 클라이언트에 UTF-8 설정없이 접속시 -> 정상
-FTP로 ds-106e 접속시 -> 폴더는 보여지나 해당 디렉토리로 이동 안됨(CuteFTP 사용시)

윈도우에서 공폴더로 접근할 경우에도 한글 파일명이 제대로 보이도록 하려면…
여러방법이 있지만 저는 다음 방법으로 해결했습니다.

convmv입니다.

먼저 chroot 환경에서 apt-get install convmv 명령으로 설치합니다.

설치 후 chroot 환경에서 나와서 convmv와 필요한 파일들을 복사합니다.

cp /volume1/chroot/usr/bin/convmv /usr/bin/
cp /volume1/chroot/usr/lib/libperl.so.5.8.4 /usr/lib/
ln -s /usr/lib/libperl.so.5.8.4 /usr/lib/libperl.so.5.8
mkdir /usr/lib/perl
cp -R /volume1/chroot/usr/lib/perl/5.8.4 /usr/lib/perl/
ln -s /usr/lib/perl/5.8.4 /usr/lib/perl/5.8
mkdir /usr/share/perl

cp -R /volume1/chroot/usr/share/perl/5.8.4 /usr/share/perl/


ln -s /usr/share/perl/5.8.4 /usr/share/perl/5.8

사용 방법은 다음과 같습니다.
convmv –notest -f euc-kr -t utf-8 -r 디렉토리명

사용 예입니다.
ds-106e에 텔넷으로 접속하여 ncftp로 euc-kr로 설정된 FTP 서버에 접속해서 파일을 받는 경우입니다.
FTP 서버의 한글 파일명을 제대로 보기위해서 ds-106에서는 putty로 utf-8 지원 설정을 하지 않고 FTP 서버에 접속하였습니다.

ncftp /음악/국내가요/이수영 > get -R “이수영 8집 – 내려놓음 [2007.09.11] 320k”
… 8집 – 내려놓음 [2007.09.11] 320k/01 midnight.mp3:    8.36 MB    1.73 MB/s

다운로드 완료 후 putty에 utf-8 지원하도록 설정 후 접속해서 해당 디렉토리로 이동하여 받은 파일을 확인해보면 제대로 출력되지 않음을 볼 수 있습니다.

fs> cd tmp
fs> ll
drwxr-xr-x    3 root     root         4096 Oct  4 11:08 .
drwxr-xr-x    3 root     root         4096 Oct  4 11:07 ..
drwxr-xr-x    2 root     root         4096 Oct  4 11:10 ▒̼▒ 8▒▒ – ▒▒▒▒▒▒ [2007.09.11] 320k

fs> cd ..

이제 파일명을 euc-kr에서 utf-8로 변환하기 위하여 다음 명령을 내려줍니다.

fs> convmv –notest -f euc-kr -t utf-8 -r ./tmp/
mv “./tmp/▒̼▒ 8▒▒ – ▒▒▒▒▒▒ [2007.09.11] 320k/06 ▒▒▒▒▒.mp3”       “./tmp/▒̼▒ 8▒▒ – ▒▒▒▒▒▒ [2007.09.11] 320k/06 보라비.mp3”
mv “./tmp/▒̼▒ 8▒▒ – ▒▒▒▒▒▒ [2007.09.11] 320k/09 ▒▒▒ ▒▒▒.mp3”     “./tmp/▒̼▒ 8▒▒ – ▒▒▒▒▒▒ [2007.09.11] 320k/09 살랑 살랑.mp3”
mv “./tmp/▒̼▒ 8▒▒ – ▒▒▒▒▒▒ [2007.09.11] 320k/03 ▒ܹ߸Ӹ▒.mp3”        “./tmp/▒̼▒ 8▒▒ – ▒▒▒▒▒▒ [2007.09.11] 320k/03 단발머리.mp3”

변환 완료 후 리스트를 출력해보면 한글이 모두 제대로 보이는 것을 볼 수 있습니다.
윈도우 탐색기로 접속해도 잘 보입니다.

fs> cd tmp
fs> ll
drwxr-xr-x    3 root     root         4096 Oct  4 11:12 .
drwxr-xr-x    3 root     root         4096 Oct  4 11:07 ..
drwxr-xr-x    2 root     root         4096 Oct  4 11:12 이수영 8집 – 내려놓음 [2007.09.11] 320k
fs> cd 이수영\ 8집\ -\ 내려놓음\ \[2007.09.11\]\ 320k/
fs> ll
drwxr-xr-x    2 root     root         4096 Oct  4 11:12 .
drwxr-xr-x    3 root     root         4096 Oct  4 11:12 ..
-rw-r–r–    1 root     root      8770016 Oct  2 22:51 01 midnight.mp3
-rw-r–r–    1 root     root     10181674 Oct  2 22:51 02 사랑이 다 그렇지.mp3
-rw-r–r–    1 root     root      9820139 Oct  2 22:51 03 단발머리.mp3
-rw-r–r–    1 root     root     11564074 Oct  2 22:51 04 멍하니.mp3
-rw-r–r–    1 root     root     12534784 Oct  2 22:51 05 heaven.mp3
-rw-r–r–    1 root     root      8058441 Oct  2 22:51 06 보라비.mp3
-rw-r–r–    1 root     root     11318522 Oct  2 22:51 07 멋진 그대.mp3
-rw-r–r–    1 root     root     10629935 Oct  2 22:51 08 참 이런 날도 오네요.mp3
-rw-r–r–    1 root     root      8419976 Oct  2 22:51 09 살랑 살랑.mp3
-rw-r–r–    1 root     root      4520416 Oct  2 22:51 10 lullaby (interlude).mp3
-rw-r–r–    1 root     root     11448090 Oct  2 22:51 11 라벤다.mp3
-rw-r–r–    1 root     root     10663371 Oct  2 22:51 12 오래된 사이.mp3
-rw-r–r–    1 root     root     10093902 Oct  2 22:51 13 twenty nine.mp3
-rw-r–r–    1 root     root      1678294 Oct  2 22:51 14 my angel (interlude).mp3
-rw-r–r–    1 root     root     12976776 Oct  2 22:51 15 다 이루었노라.mp3


간단히 사용하기 위한 스크립트 파일을 첨부합니다.
1374087502.xxx사용법: toUTF-8.sh 디렉토리