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

问题描述:

我有内容存储在Postgres数据库中,现在每当我调用内容以便它使用php显示时,我在IE中获得有趣的正方形并在Firefox中获得有趣的方形类型问号?下面显示内容时在浏览器中获得有趣的方块

* - March � May 2009 

示例如何删除这个?

我没有访问服务器,因此无法调整编码那里,只有具有Postgres的DB细节和FTP访问上传我的文件

+0

可能重复[什么是字符编码,为什么我应该打扰它](http://stackoverflow.com/questions/10611455/what-is-character-encoding-and-why-should-i-bother- with-it) – Raedwald 2015-04-10 12:38:07

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

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

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

+0

如果我无法访问数据库服务器,我可以在我的代码中执行某些操作来解决此问题 – Roland 2009-10-01 13:18:23

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

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

我也建议:The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)由Joel Spolsky的,我读过它只是最近我自己,它一定会帮助你解决你的问题。