【发布时间】: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