1

我在客户数据库中有这个词(同样情况下还有 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。

4

3 回答 3

1

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

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

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

例如,我认为 ã 不存在于 ISO-8859-1 中,因此您实际上确实需要 UTF-8。将其作为 是不正确的&aatilde;,这是 HTML 的表示方式。

于 2012-10-24T20:24:44.067 回答
1

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

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

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

utf8_decode (data)

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

utf8_encode (data)

到目前为止,工作完美。

于 2012-10-24T21:23:45.397 回答