LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1657|回复: 5

[求助]sftp的文件名输出编码与哪些配置有关?会受编译参数影响吗?[可能是gentoo和debia

[复制链接]
发表于 2007-10-18 13:35:43 | 显示全部楼层 |阅读模式
我在 http://www.linuxsir.cn/bbs/showthread.php?t=314273 里的问题就剩sftp没解决了。由于可能与env中的东西没直接关系,就开新帖问。

症状:sftp把utf8的文件名直接输出后,按GB2312加头,导致客户端按ANSI/GB2312解析,产生乱码。

env中已经指定LANG 和 LC_ALL 为zh_CN.UTF8。

sshd的conf中没有关于charset的设置。

系统一直用utf8的文件名,在我在make.conf中加LANG和LANGUAS前一切正常。

我是用putty的psftp以及xmanager的sftp测的。均未针对charset作设置。
-------------------------------------------------
修正一下,我是以前在Debian下sftp可以直接显示中文文件名(utf8的),换到gentoo后,我还没有正常用sftp显示中文文件名的记录(putty是指定的utf8,所以只受服务端LC的影响)。
我刚才换到我最初试gentoo时挂在某单一分区下的系统,发现sftp还是没有把utf8按utf8解析。
难道是debian的sftp加了强制utf8的补丁?

这几天在gentoo下转的有些混淆了,抱歉。
发表于 2007-10-18 14:06:47 | 显示全部楼层
你用linux命令行的sftp试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-18 23:09:46 | 显示全部楼层
sftp直接连127.0.0.1正常。

lftp下默认set file:charset UTF-8,结果正常。

但为啥以前在debian下正常?难道debian是输出gb2312的 ?
回复 支持 反对

使用道具 举报

发表于 2007-10-19 01:28:50 | 显示全部楼层
看看我理解的是否正确:
你用windows图形界面的sftp有问题,用linux命令行界面的sftp没问题

如果是这样话,这不显然和linux无关么?肯定是你的windows程序的配置问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-19 02:03:06 | 显示全部楼层
目前lftp是显式指定utf8文件名的,sftp(linux)也可能是继承了LC_ALL的配置。

这需要核实一点,sftp是否像ftp那样有RFC-2640等utf8的通讯标准,如果没有,就是说必须手工配置sftp客户端,问题在windows程序。如果有,则服务端有调节的余地,windows程序可能只是省略了强制选项。麻烦的是FileZilla不支持密匙验证,我又是要以root访问,要不就可以强制utf8了。

我目前在意的是sshd有关于传递环境变量的选项,不知道是否有用。

我实在不想认为debian的sftp没走utf8,因为我当时装的时候指定了utf8的。
回复 支持 反对

使用道具 举报

发表于 2007-10-19 02:12:52 | 显示全部楼层
你去开个wireshark,抓抓包,看看包里字符是什么编码
然后对应的调整相关程序的编码

或者你去分析一下debian的包是怎么编译出来的,再分析一下gentoo的包是怎么编译的

这些问题恐怕不会有第二个人会感兴趣
靠你自己了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表