如何通过 cifs 非 unicode samba 服务器进行挂载并进行字符集转换?

如何通过 cifs 非 unicode samba 服务器进行挂载并进行字符集转换?

在旧版 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 显示:

  • N° 093 - Déepense.xls
    而不是
  • N° 093 - 支出.xls

    原来问题是 Putty 默认窗口->翻译->远程字符集设置为ISO-8859-1。一旦我将其更改为 UTF-8,一切都会正确显示。

    如果您像我一样总是远程访问,请记住这一点。花 5 秒钟在本地 shell 上进行测试,然后花一个愉快的晚上阅读和浏览微软 NTFS 代码页技术文档,尝试找出您的本地 Windows NTFS 分区代码页设置为何,以便您可以在 iocharset cifs 参数中设置正确的代码页 :)

  • 相关内容