繁体   English   中英

将不同的编码字符集转换为UTF-8

[英]Convert different encode charset to UTF-8

我在客户数据库中有这样的话(并且在相同的情况下更多40个):

  1. Aclimação
  2. Aclima&ccedilão

我需要将两者都转换为UTF-8并保存在MySQL数据库中:Aclimação。

我是如何用PHP做到的?

[编辑]
观察:
我需要这样做,因为当用户找到特定的“区域”时,它不可能以两种格式转换,例如:

  1. Aclimaç&aatilde;o (correct)
  2. Aclimação (incorrect: utf8 + html number encode)
  3. Aclima&ccedilão (incorrect: iso + html number encode)

在我的例子中,我只需要一种编码:ISO-8859-1。

以下解决方案如何使用以下函数转换数据库中的所有数据:

mb_convert_encoding (data, 'UTF-8', 'HTML-ENTITIES');

当我阅读记录时,请执行以下操作:

utf8_decode (data)

当我根据网站()的选择查找一些记录时,我会执行以下操作:

utf8_encode (data)

到目前为止,工作得很好。

html_entity_decode()应用于字符串后,获取值并将其插入数据库。

(你提供的第二个字符串看起来像是格式错误的HTML实体,是吗?)

  1. 使用mysqldump将数据库内容转储出来
  2. iconv数据为UTF8
  3. string将您的格式错误的html实体替换为有效
  4. 使用html_entity_decode将有效的html实体更改为它们应该是的字符。 请注意,您应该将其编码(UTF-8)作为参数,否则它将取决于PHP版本!
  5. 在mysql中创建新的UTF-8数据库
  6. 将数据导入mysql

我不认为例如ã存在于ISO-8859-1中,所以你确实需要UTF-8。 将它作为&aatilde;是不正确的&aatilde; ,这是表示它的HTML方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM