我正在将几台计算机从 Windows 切换到 Ubuntu 20.04,并且遇到了一个非常非常老旧的 SMB 服务器问题,我必须连接到该服务器。该服务器正在运行 Samba V2.2.5,并配置为使用 ISO8859-15 作为此服务器上所有文件和驱动器的字符集。我无法更改该服务器的配置,因为有多个 Windows 客户端正在连接到它。
经过几天的尝试和错误,我设法使用以下命令在我的 Ubuntu 20.04 客户端上挂载该 SMB 共享:
sudo smbmount //192.168.224.16/jw /mnt -o username=jw,sec=ntlm,vers=1.0,uid=1000,gid=1000,nounix
是的,我知道 sec=ntlm 确实过时了,是的,我也知道 vers=1.0 确实过时了。不过,这是我发现的唯一可以连接到这个古老服务器的协议组合。
剩下的唯一问题是文件名中德语变音符号的转换。如果我在该服务器上执行 ls 命令,它看起来像这样:
drwxr-xr-x 2 jochen jochen 0 2015 年 5 月 10 日。 drwxr-xr-x 2 jochen jochen 0 9月 30 16:32 .. drwxr-xr-x 2 jochen jochen 0 2020年7月1日 W007D_Dokumente drwxr-xr-x 2 jochen jochen 0 2020 年 3 月 21 日 W007L_Leiterplatten drwxr-xr-x 2 jochen jochen 0 2015 年 2 月 19 日 W007S_Software drwxr-xr-x 2 jochen jochen 0 2020 年 3 月 21 日 'W007Z_Zusammenf'$'\201''gungen'
最后一个目录应该是“W007Z_Zusammenfügungen”。我在安装时尝试了几个“iocharset=”-Options - 没有任何区别。我在安装时尝试了“codepage=”-Options - 似乎已经过时并且不再使用。
Ubuntu 客户端上的语言环境显示:
jochen@HP8510W-3:~$ 语言环境 LANG=de_DE.UTF-8 语言=de_DE:en LC_CTYPE="de_DE.UTF-8" LC_NUMERIC=de_DE.UTF-8 LC_TIME=de_DE.UTF-8 LC_COLLATE="德语_DE.UTF-8" LC_MONETARY=de_DE.UTF-8 LC_MESSAGES="de_DE.UTF-8" LC_PAPER=de_DE.UTF-8 LC_NAME=de_DE.UTF-8 LC_ADDRESS=de_DE.UTF-8 LC_TELEPHONE=de_DE.UTF-8 LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=de_DE.UTF-8 LC_ALL=
有任何想法吗?
感谢我所能得到的所有支持!
答案1
一些实验:
~/test$ touch W007Z_Zusammenfügungen
~/test$ convmv -f UTF-8 -t ISO_8859-15 W007Z_Zusammenfügungen --notest
~/test$ ls
'W007Z_Zusammenf'$'\374''gungen'
(我必须'$'\374''
代表 ü,而不是'$'\201''
。)
然后我采取了以下步骤:
创建了德语 ISO-8859-1 语言环境:
~/test$ sudo locale-gen de_DE Generating locales (this might take a while)... de_DE.ISO-8859-1... done Generation complete.
将我的个人资料中的编码更改
gnome-terminal
为西方 - ISO-8859-15
进而:
~/test$ LC_CTYPE=de_DE ls
W007Z_Zusammenfügungen