基本上所有的字符集问题都源于它们被混合和/或曲解的事实。
字符串(文本)是按特定顺序的字节序列。字符串使用一些特定的字符集进行编码,本身既不是正确也不是错误,也不是其他任何东西。问题是当你试图读取字符串,字节序列,假设错误的字符集。例如,使用KS X 1001进行编码的字节在读取它们时假定它们是UTF-8就没有意义,这就是问号的来源。
您从中获得文本的网站会将其发送给您,并以某些特定字符集为例,假设您使用的是KS X 1001.假设您的网站使用UTF-8。在UTF-8编码文本的中间嵌入代表KS X 1001编码文本的字节流,并告知浏览器将整个站点解释为UTF-8,这导致KS X 1001编码文本对UTF-8解析器没有意义。
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
KSKSKSKSKSKSKSKSKSKSKSKSKSKSKSKSKSKSKSKS
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
将呈现为
Hey, this is UTF-8 encoded text, awesome!
???????I?have?no?idea?what?this?is???????
Hey, this is UTF-8 encoded text, awesome!
为了解决这个问题,convert所获取的文本为UTF-8(或您在使用网站上的任何编码)。看看其他网站的Content-Type
标题,它应该告诉你网站是什么编码。如果不是,请猜测。
什么是数据库字符集? 什么是你的文件字符集? 你的控制台字符集是什么? – 2010-07-29 09:28:27
添加了PHP源代码和SQL转储,请看看它们。 – lesderid 2010-07-29 09:30:47
PHP与charsets很少有关系。我主要是数据库/ html责任 – 2010-07-29 09:32:13