我会简短的.我的FTP函数返回错误的文件名编码
- $conn_id = ftp_connect("site.com");
- ftp_login($conn_id,"login","pass");
- ftp_pasv($conn_id,true);
- $buff = ftp_nlist($conn_id,"./");
- print_r($buff);
- -> // result
- array() {
- [0]=> "��.txt"
- }
文件名具有Windows-1251编码.
我尝试通过nodejs连接到FTP,但它也返回令人毛骨悚然的东西 – òð.txt.
然而,我的桌面客户端(WinSCP)可以正常工作.
PS:我试过使用utf8_encode – 但这对我来说也不行.
如果编码是你可以尝试使用
mb_convert_encoding更改它.下面的代码应输出正确的值.
- <?PHP
- echo mb_convert_encoding($buff[0],"UTF-8");
- //or
- echo mb_convert_encoding($buff[0],"UTF-8","windows-1251");
- ?>
如果它不起作用,你可以尝试使用类似的东西找到正确的编码
- <?PHP
- foreach(mb_list_encodings() as $chr){
- echo mb_convert_encoding($buff[0],'UTF-8',$chr)." : ".$chr."<br>";
- }
- ?>