我在理解运行PHP / Apache的服务器为什么正确格式化特殊字符而另一台服务器不是格式化时遇到了问题。
我使用的元标记是;
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
我也试过了;
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
正在运行的服务器;
Apache / 2.4.9(Win64)PHP / 5.5.11
格式不正确,并用黑色菱形替换其中带有问号的字符,正在运行;
Apache / 2.4.10(Win32)OpenSSL / 1.0.1i PHP / 5.6.3
我假设它有配置问题,在哪里?我不知道。也许它在默认行为上有所不同。它不能是代码,因为它在两台服务器上都是相同的。
答案 0 :(得分:3)
HTML元标记仅对信令编码具有次要意义;如果存在, HTTP Content-Type标头优先。一台服务器正在设置该标头,另一台服务器没有(或设置错误的标头)。
在Apache中适当地设置默认字符集,或者在PHP中自己显式输出该字符串:
header('Content-Type: text/html; charset=iso-8859-1');