0
我已禁用本地MySQL服务器并查看相应的PDO异常。的问题是,在该消息中的所有西里尔符号被断开(消息文本和cyryllic符号路径):为什么在windows-1251中抛出异常?
PDOException:SQLSTATE [HY000] [2002] , . 。 。在d:\ \域\ time.local \供应商\时间\ db.php中:25堆栈跟踪:#0 ...
我发现了该文本实际上是windows-1251格式(当我在浏览器中手动切换时显示正常文本)。但我有UTF-8集无处不在:阿帕奇我有:
AddDefaultCharset UTF-8
(阿帕奇发出正确的字符集头)
所有的PHP文件采用UTF-8无BOM。在php.ini中我有:
default_charset = "UTF-8"
internal_encoding = "UTF-8"
input_encoding = "UTF-8"
output_encoding = "UTF-8"
那么为什么它仍然使用windows-1251呢?以及如何将这些消息切换到utf-8?
我也看到,致命的错误和其他也使用Windows-1251。为什么?
的Apache 2.4/7.0.3 PHP/Windows的10
P. S.我的异常处理程序很简单:
set_exception_handler(function (\Throwable $th) {
echo $th;
});
请参阅:http://stackoverflow.com/questions/279170/utf-8-all-the-way-through –