为什么scp从远程到本地改变文件名与变音符号?

时间:2015-10-14 14:07:10

标签: utf-8 filenames scp

我正在使用

将网站空间从远程复制到本地
scp -r account@remote-server.de:html /path/to/copy/

问题:变音符号的文件名已更改,例如remote:hörsaal.jpg/ local:hörsaal.jpg

远程服务器上的区域设置:

# locale
LANG=de_DE.utf8
LC_CTYPE="de_DE.utf8"
LC_NUMERIC="de_DE.utf8"
LC_TIME="de_DE.utf8"
LC_COLLATE="de_DE.utf8"
LC_MONETARY="de_DE.utf8"
LC_MESSAGES="de_DE.utf8"
LC_PAPER="de_DE.utf8"
LC_NAME="de_DE.utf8"
LC_ADDRESS="de_DE.utf8"
LC_TELEPHONE="de_DE.utf8"
LC_MEASUREMENT="de_DE.utf8"
LC_IDENTIFICATION="de_DE.utf8"
LC_ALL=de_DE.utf8
本地服务器上的

# locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

当我复制输出时,我看到本地服务器上的LC_ALL为空。 这是问题的原因吗? BTW。我试过了

convmv  -f ISO-8859-1 -t UTF-8  hörsaal.jpg

回应(一部分):
Skipping, already UTF-8: hörsaal.jpg

1 个答案:

答案 0 :(得分:0)

您是否尝试在主机系统上进行转换?

convmv  -f ISO-8859-1 -t UTF-8 hörsaal.jpg

然后转移到目标系统:

scp -r account@remote-server.de:html /path/to/copy/

备注我认为源系统将ISO-8859-1作为默认文件编码,目标系统使用UTF-8作为文件编码

解决方法

重命名主机上的文件,因此它不再包含 ISO-8859-1 特定字符。将其复制到目标计算机。