服务器正在运行带有 IIS 6.0.3790.1830 x86 (iis.dll) 的 Windows 2003。我的数据库服务器是 Microsoft SQL Server 2000。我的 PHP 版本是 5.3。
原始应用程序托管在其上,appserv1
其数据库位于dbserv1
. 一切正常,一切正常,运行良好。
需要将相同的应用程序(不同的模块)放在另一台服务器上,用于其他用途,所以我复制了数据库dbserv2
,配置appserv2
为托管应用程序,所以我实现了 2 个几乎相同的副本。两者都dbserv1
使用dbserv2
相同的编码,两者appserv1
都appserv2
在 IIS6 上使用相同的 PHP 配置。我也尽力在 IIS 中设置相同的设置。我还确保在 HTTP 标头和带有 http-equiv 的元标记中传递编码信息。两个应用程序都使用 utf-8。
问题是应用程序的副本无法在浏览器中正常显示非 ASCII 字符,即使浏览器正确检测到页面的 UTF-8 编码。首先我认为这是一个数据库问题,因为 MSSQL 2000 不支持 UTF-8,而是使用 UCS-2,但是当我将应用程序重定向appserv2
到使用数据库时dbserv1
,它具有相同的编码问题。
这就是为什么我要问我可以通过什么方式使它工作。
谢谢你的阅读。
谢谢大家,我想通了(尽我所能)。问题出在服务器的区域设置中,用于非 unicode 程序的代码页(该死,我认为服务器使用字节流运行,它们在客户端转换为字符,但似乎还有更多内容) .