2013-03-02 52 views
2

我在CentOS服务器上安装了PHP,并且我想将此文件(使用PHP FTP)传输到运行IIS的Windows FTP服务器。现在我的问题是,当文件名有非拉丁字符时,它将文件名更改为'تست.3gp'(它在CentOS中的名字是تست.3 gp)。我搜索了很多次,但没有解决方案。我怎样才能解决这个问题?复制的文件名变成乱码

我认为Windows使用CP-1252(Windows-1252)作为字符集,而CentOS使用UTF-8作为字符集。但将其与iconv()mb_convert_encoding()转换不起作用。

+1

看到这网页我回答了这个问题http://stackoverflow.com/questions/15055192/why-does-windows-need-to-utf8-decode-filenames-for-file-get-contents-to-work/15055869#15055869 – 2013-03-02 16:43:42

+0

它不起作用 – IVIR3zaM 2013-03-02 18:00:06

+0

它对我来说工作正常问题? – 2013-03-02 18:02:32

回答

0

我们也可以在mb_convert_encoding()使用这些值编码:

// Cyrillic script such as Russian, Bulgarian, Serbian Cyrillic and other languages Windows-1251 ~= ISO-8859-5 

// Latin alphabet Windows-1252 ~= ISO-8859-1 // sometimes called incorrectly "ANSI" 

//modern Greek. It is not capable of supporting the older polytonic Greek. It is not fully compatible with ISO 8859-7 because the letters like Ά are located at different byte values Windows-1253 ~= ISO-8859-7 

// Turkish Windows-1254 = ISO-8859-9 

// Hebrew Windows-1255 = ISO-8859-8 

// Arabic script like Persian and Urdu Windows-1256 ~= ISO-8859-6 

// Estonian, Latvian and Lithuanian languages Windows-1257 != ISO-8859-4 

// Vietnamese texts. It is very similar to Windows-1252 with the differences being that s-caron and z-caron Windows-1258 ~= Windows-1252 

我使用这些代码波斯文件名:

$filename=iconv('UTF-8','Windows-1256//IGNORE',$filename);