我必须从数据库导入数据,其中使用的字符编码是ISO-8859-1,而我们使用的新网站使用的是UTF-8。数据被拉出的网站是旧的,因此我认为它仍然是ISO的原因。
我尝试了以下解决方案但没有结果:
的iconv
然而,在它发表之后 拟于2008年3月提出的规则 完全禁止这些物品, 邮政服务收到了很多 反对其计划行动的评论 主要有四个原因:(1) 原始语言含糊不清 广泛的,所以邮政局有 将“弹药”改为“ “爆炸装置”,(2)一些 受访者质疑是否这样 问题甚至存在,尽管如此 邮政服务表示已经“记录” 涉及的众多事件 发现展出的邮件 可能的特征 爆炸物, - (3)拟议的规则 据说违反了第二个 修正案,以及(4)邮政服务 缺乏禁止邮寄的权力 这些物品。
到
然而,在它发表之后 拟于2008年3月提出的规则 完全禁止这些物品, 邮政服务收到了很多 反对其计划行动的评论 主要有四个原因:(1) 原始语言含糊不清 广泛的,所以邮政局有 改变了✜munitions⢠到’的爆炸装置,â(2) 一些受访者质疑是否 但是,这个问题甚至存在 邮政局说它有 “记录了许多事件 涉及邮件的发现 表现出可能的特征 爆炸物,¢(3)拟议的规则 据说违反了第二个 修正案,以及(4)邮政服务 缺乏禁止邮寄的权力 这些物品。
mb_convert_encoding
与上述完全相同的结果。
函数utf8_encode
与上述完全相同的结果。
utf8_decode
用所有的结果拉回一个有趣的结果?替换:
然而,在它发表之后 拟于2008年3月提出的规则 完全禁止这些物品, 邮政服务收到了很多 反对其计划行动的评论 主要有四个原因:(1) 原始语言含糊不清 广泛的,所以邮政局有 改变了这个词?弹药?至 ?爆炸装置,? (2)一些 受访者质疑是否这样 问题甚至存在,尽管如此 邮政服务表示它有记录 涉及的众多事件 发现展出的邮件 可能的特征 炸药,? (3)拟议规则 据说违反了第二个 修正案,以及(4)邮政服务 缺乏禁止邮寄的权力 这些物品。
不完全确定该怎么做。
任何帮助将不胜感激!
谢谢!
答案 0 :(得分:1)
你必须对此非常彻底。在数据库和Web浏览器之间,有许多位置,编码可能会被污染。
其中任何一个都可能是罪魁祸首。您可能已成功将数据从ISO-08859-1转换为UTF-8,但这并不意味着您正在操作它或正确显示它。
要检查数据库内容(特定于表的设置除外),请运行此查询
select @@character_set_server
, @@collation_server
, @@character_set_database
, @@collation_database
, @@character_set_client
, @@character_set_connection
, @@collation_connection
, @@character_set_results
;
检查您的表的CREATE语句以获取该信息(如果需要帮助,可以将这些语句复制/粘贴到您的问题中)
要解决HTTP Content-Type(即输出字符编码),请确保在输出之前的某个地方有这个
ini_set( 'default_charset', 'UTF-8' );
最后,如果这没有帮助,请给我们一些更多细节。您使用iconv的参数是什么?
答案 1 :(得分:0)
那不是ISO 8859-1,那是Windows代码页1252:
>>> a=u'“'
>>> print a.encode('cp1252').decode('utf-8')
“
>>>
答案 2 :(得分:0)
您给我的查询的输出是:
latin1 latin1_swedish_ci
latin1 latin1_swedish_ci
latin1 latin1
latin1_swedish_ci
LATIN1
对于在PHP文件开头设置的默认字符集,它适用于某些数据,但不适用于所有数据。
无论如何,仍然在这里查看。