在显示内容时在浏览器中获取有趣的方块

时间:2009-10-01 13:10:56

标签: php

我将内容存储在Postgres数据库中,现在每次调用内容以便使用php显示内容时,我会在IE中看到有趣的方块,在Firefox中有趣的方形问号?

以下示例

    *  - March � May 2009

如何删除?

我无权访问服务器,因此无法在那里调整编码,只有postgres数据库详细信息和FTP访问权限才能上传我的文件

4 个答案:

答案 0 :(得分:8)

我还建议:Joel Spolsky的The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!),我最近才读到它,它肯定会帮助你解决问题。

答案 1 :(得分:6)

您需要确保Postgres,PHP和您的浏览器都同意内容编码,并且您在浏览器中选择了适当的字体。最简单的方法是为所有内容选择UTF8。

我不了解PHP,但我确实知道数据库和浏览器。首先,您需要确定数据库是否为UTF8。 (从psql,我会做一个“\ l”并查看编码。)然后你需要找出PHP是否支持UTF8(我不知道你是怎么做的)。然后你需要看看PHP应用程序是如何将这些字符存储在数据库中的。然后,您需要确定Web服务器是否正确报告内容编码。 (在Linux / Unix上,我使用程序“HEAD”(而不是“head”)来查看它返回的标题。)然后你需要弄清楚你的浏览器是否使用支持UTF8的字体。

或者,您可以确保只存储ASCII并忘记世界其他地方存在。不推荐。

答案 2 :(得分:4)

某处错误的字符集。字符可能在数据库中已经存在错误,或者页面上的元标记中存在错误的字符集(尝试在浏览器中手动更改字符集),或者当页面与数据库通信时可能存在编码错误的问题。 查看此页面http://www.postgresql.org/docs/8.2/static/multibyte.html以获取更多信息。 尝试在所有地方使用相同的编码,最好是UTF-8

答案 3 :(得分:2)

您有编码问题。确保编码设置在数据库中,在html标记中,并确保文件本身以正确的编码保存。