尽管您的 mysql 数据正确输出而 php 字符串在编码时失败,这听起来真的很奇怪,但我尝试解决您的问题的方法是将问题分解为尝试识别错误编码的生成位置的步骤!
首先,您应该尝试在 php.ini 文件中设置您的default_charset
to utf-8
,如下所示:
default_charset = "utf-8";
如果由于提供者限制而无法这样做,您仍然可以使用ini_set函数在运行时更改值!
您还需要确保网络服务器也设置为输出 utf-8 编码文件!在 Apache 中,这可以在 httpd.conf 或使用 htaccess 文件中完成:
AddDefaultCharset UTF-8
此时如果一切都失败了,仍然......尝试使用 php 标头和相关 html 字符集:
<?php header("content-type: text/html;charset=utf-8") ?>
<!doctype>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php echo "α β γ δ ε ϝ ϛ ζ η θ ι κ λ μ ν ξ ο π ϟ ϙ ρ σ τ υ φ χ ψ ω ϡ" ?>
</body>
</html>
非常重要的是,您的文件也使用适当的编码保存(utf-8 几乎总是更好的选择,它有助于防止很多问题)。如果您使用不同于 utf-8 的编码保存文件,请销毁它们并从旧内容中创建新文件。有时编辑器在创建文件后并不能真正正确地切换编码,尽管 notepad++ 通常在这方面做得很好;只是converto to
不使用该encode in
功能!
如果它仍然不工作,虽然我希望它现在可以工作,你可以检查一些其他的 php 替代品,如mb_detect_encoding、mb_convert_encoding、htmlentities和htmlspecialchars以解决问题!