我运行多个服务器,一个用于开发,一个用于客户端测试,另一个用于生产。我遇到了字符编码问题(显示旧的“菱形中的问号”而不是重音字符),但仅限于一这些服务器。所有 3 台服务器上的 PHP 页面都是相同的,并且所有服务器的设置都尽可能相似(Macports MAMP Mac Minis)。以下是显示所用编码的前几行:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Biography Generator</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
没有数据库在起作用,只有直接的 HTML 和 PHP。是的,这是过时的技术。我的客户做出编码和 HTML4 决定,而不是我。我只需要让它工作。哪些服务器配置详细信息可能导致这种情况?
答案1
事实证明这是在 php.ini 文件中设置的。我必须进行以下更改:
default_charset = "UTF-8"
到:
default_charset = ""
注释掉该行并没有解决问题,我不得不将其设置为空字符串。