[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[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.