在旧版 smbfs 中我使用 codepage 和 iocharset 选项,但 cifs 不支持 codepage。我该怎么办?
答案1
我认为您的问题是 NTFS 共享的文件名出现了奇怪的字符。
根据NTFS 常见问题解答,mount 命令支持 NTFS 的 iocharset 参数。您应该特别注意第 4 节并尝试那里给出的 mount 命令。
在另一篇文章中:smbfs & cifs; 重音字符; 已解决,作者提出了三种发行此类股票的可能性:
mount //192.168.15.123/a /home/b/c -t cifs -o username=d,password=e,uid=f,gid=g,iocharset=utf8
mount //192.168.15.123/a /home/b/c -t cifs -o username=d,password=e,uid=f,gid=g,iocharset=utf8,codepage=cp437
mount //192.168.15.123/a /home/b/c -t cifs -o username=d,password=e,uid=f,gid=g,iocharset=utf8,codepage=cp850
有关更多信息,上面的文章描述了作者的连续尝试和逻辑,直到他成功完成这项工作。
答案2
只需提一下,确保它不是一个设置错误的 ssh 设置。
刚刚花了一整晚的时间试图找出如何解决这个问题。安装带有法语字符 (é,è) 的 Windows 8.1 NTFS 文件夹导致我的 ls 显示:
而不是
原来问题是 Putty 默认窗口->翻译->远程字符集设置为ISO-8859-1。一旦我将其更改为 UTF-8,一切都会正确显示。
如果您像我一样总是远程访问,请记住这一点。花 5 秒钟在本地 shell 上进行测试,然后花一个愉快的晚上阅读和浏览微软 NTFS 代码页技术文档,尝试找出您的本地 Windows NTFS 分区代码页设置为何,以便您可以在 iocharset cifs 参数中设置正确的代码页 :)