【问题标题】:Issues with Cyrillic character set in PHP (Black Diamonds & question marks)PHP 中的西里尔字符集问题(黑钻石和问号)
【发布时间】:2017-08-09 15:56:41
【问题描述】:

我在使用西里尔字符集检索和处理俄语数据时遇到问题。

我使用下面的代码从 FTP 服务器获取文本文件中的数据,它显示每个字符,里面带有问号的黑色菱形。

如果我用浏览器访问FTP地址直接查看,显示正确。

我已尝试更改此行: 到 和 虽然我得到不同的结果,但没有一个显示与直接通过浏览器访问文件时相同。

我不知道如何让代码在我直接查看时与浏览器显示相同

这将是我如何直接查看正确显示的文本文件的示例:ftp://username:password@ftp.mysite.com/test.txt

这是我使用的代码,它显示带有问号的黑色菱形(其他其他不正确的字符,取决于上面提到的字符集)。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<?php
$username = "username";
$password = "password";
$server = "ftp://ftp.mysite.com"
$remoteFile = "test.txt";
$conn = ftp_connect($server);
if (@ftp_login($conn, $username, $password)) {
    echo "";
    } 
else {
    echo "";
    }
ob_start();
ftp_get($conn, 'php://output', $remoteFile, FTP_ASCII);
$data = ob_get_contents();
ob_end_clean();
ftp_close($conn); 
echo $data;
?>
</html>

【问题讨论】:

  • 在 $data 上尝试 utf8_encode
  • 谢谢,虽然这确实停止了“黑色菱形/问号”问题,但仍然无法正确显示。我再次对否决票感到失望(没有解释原因),因为我只是在我自己无法解决问题时才在此处发布。
  • 哦,我注意到了,您正在使用 ftp 到 ASCII 的传输模式,请尝试使用 FTP_BINARY 标志代替 FTP_ASCII 标志切换到二进制模式
  • 你好@vishwakarma09 谢谢你的帮助。不幸的是,这似乎没有帮助,字符仍然没有以正确的格式显示。我做了一个 mb_detect_encoding($data);在它上面,它声称它是 UTF-8,但我看不出那是怎么回事?我完全被这个难住了:-(

标签: php character-encoding ftp


【解决方案1】:

我设法通过使用mb_convert_encoding 添加以下行来解决此问题:

$new_data = mb_convert_encoding($data, "utf-8", "Windows-1251");

生成的代码为:

<html>
<?php
$username = "username";
$password = "password";
$server = "ftp://ftp.mysite.com"
$remoteFile = "test.txt";
$conn = ftp_connect($server);
if (@ftp_login($conn, $username, $password)) {
    echo "";
    } 
else {
    echo "";
    }
ob_start();
ftp_get($conn, 'php://output', $remoteFile, FTP_ASCII);
$data = ob_get_contents();
ob_end_clean();
ftp_close($conn); 
$new_data = mb_convert_encoding($data, "utf-8", "Windows-1251");
echo $data;
?>
</html>

希望这对某人有所帮助...

【讨论】:

    猜你喜欢
    • 2015-05-19
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 2020-08-14
    • 2012-12-13
    • 2020-06-15
    相关资源
    最近更新 更多