PHP - FTP文件名编码问题

art*_*pro 7 php ftp encoding

我会简短的.我的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"
    }
Run Code Online (Sandbox Code Playgroud)

文件名具有Windows-1251编码.

我尝试通过nodejs连接到FTP,但它也返回令人毛骨悚然的东西 - òð.txt.

然而,我的桌面客户端(WinSCP)可以正常工作.

PS:我尝试使用utf8_encode - 但这也不适合我.

Hug*_*ing 9

如果编码是你可以尝试使用mb_convert_encoding更改它.下面的代码应该输出正确的值.

<?php
echo mb_convert_encoding($buff[0], "UTF-8");
//or
echo mb_convert_encoding($buff[0], "UTF-8", "windows-1251");
?>
Run Code Online (Sandbox Code Playgroud)

如果它不起作用,你可以尝试使用类似的东西找到正确的编码

<?php
foreach(mb_list_encodings() as $chr){
  echo mb_convert_encoding($buff[0], 'UTF-8', $chr)." : ".$chr."<br>"; 
} 
?>
Run Code Online (Sandbox Code Playgroud)