[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:44349] Re: logファイルの日本語 文字化け



ありがとうございました。
日本語はやっぱりダメなんですね。

日本語のファイル名は全部文字化けしちゃって不便ですが
仕方ないですね。

ご丁寧な回答ありがとうございました。


川上 憲明 3.1


----- Original Message ----- From: "SEKINE tatz Tatsuo" <tsekine@xxxxxxxxxx>
To: <debian-users@debian.or.jp>
Sent: Tuesday, August 02, 2005 10:02 PM
Subject: [debian-users:44322] Re: logファイルの日本語 文字化け


関根です。

debian でどうなってるかは分かりませんが、original の vsftpd
で確認すると以下のような感じなので、SJIS は無理そうですね。
なぜ 177 を mask してるのか謎なのですが、これさえなければ
EUC-JP ならいけそう (だけど、多分 client の対応をチェックし
ないといけない) です。

logging.c:
 static void
 vsf_log_do_log_to_file(int fd, struct mystr* p_str)
 {
   if (!tunable_no_log_lock)
   {
     int retval = vsf_sysutil_lock_file(fd);
     if (vsf_sysutil_retval_is_error(retval))
     {
return;
     }
   }
   str_replace_unprintable(p_str, '?');
(snip)
str.c:
 str_replace_unprintable(struct mystr* p_str, char new_char)
 {
   unsigned int i;
   for (i=0; i < p_str->len; i++)
   {
     if (!vsf_sysutil_isprint(p_str->p_buf[i]))
(snip)
sysutil.c:
 int
 vsf_sysutil_isprint(int the_char)
 {
/* From Solar - we know better than some libc's! Don't let any potential
    * control chars through
    */
   unsigned char uc = (unsigned char) the_char;
   if (uc <= 31)
   {
     return 0;
   }
   if (uc == 177)
   {
     return 0;
   }
   if (uc >= 128 && uc <= 159)
   {
     return 0;
   }
   return isprint(the_char);
 }

--
SEKINE Tatsuo:
tsekine@xxxxxxxxxx    System Design & Research Inst. Co.,Ltd.



__________________________________
Save the earth
http://pr.mail.yahoo.co.jp/ondanka/