PHP错误消息的编码

4

I have WebServer on Windows.

In .htaccess:

AddDefaultCharset utf-8
php_value mbstring.internal_encoding utf-8
php_value default_charset utf-8

在脚本中:

header("Content-Type: text/html; charset=utf-8");
ftp_connect("1");

在浏览器中使用UTF-8编码:
Warning: ftp_connect() [function.ftp-connect]: php_network_getaddresses: getaddrinfo failed: ���� ���� ����������. (

问题 - 为什么错误信息不是UTF-8格式?

2
仅是猜测:php 只是简单地打印出它从操作系统收到的错误信息,这种情况下是Windows系统,我记得其编码为windows-1252。 - Maerlyn
1
@Maerlyn 不,那个错误信息不是cp-1252(它是ASCII兼容的),而是UTF-16。但是,问题在于操作系统字符集与php的不匹配,而php不会进行翻译。 - phihag
也许吧...谢谢,Maerlyn - dlyaok
1个回答

0

看起来PHP与“getaddrinfo失败:”的错误消息无关。误传的字符来自不同的源 - 这里是来自FTP服务器应用程序。您已经检查了Web服务器和PHP端,但没有检查FTP服务器的配置。

我最好的猜测是检查FTP服务器。

您可以在代码下方检查另一个错误消息

header("Content-Type: text/html; charset=utf-8");
ftp_connect("1");
//generate some mess resulting in error info
file_get_contents('forsurenonexistingfile');

如果您的错误信息以正确的字符表示出现,那么谜团便消失了。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接