【发布时间】:2014-11-14 14:54:39
【问题描述】:
我从 Unicode 格式的 XML 文件接收数据。使用 latin1_general_ci 编码的字段在 MySQL DB 中插入/更新此数据的最佳和正确方法是什么?
谢谢!
【问题讨论】:
我从 Unicode 格式的 XML 文件接收数据。使用 latin1_general_ci 编码的字段在 MySQL DB 中插入/更新此数据的最佳和正确方法是什么?
谢谢!
【问题讨论】:
Nitpick:latin1_general_ci 是一种排序规则——一种排序顺序。您使用的编码——CHARACTER SET——是latin1。
从您的字符串中实体化您的 Unicode 字符。在将 XML 文件解析为值之后以及将这些值存储在数据库列中之前执行此操作。例如,在存储之前,您需要将 ⇨(箭头)转换为文本字符串中的 ⇨。
$outstr = htmlentities ( $instr, ENT_NOQUOTES, ISO8859-1);
您需要阅读htmlentities,因为它有很多选择。 http://php.net/manual/en/function.htmlentities.php
当您从数据库中检索这些值时,您可以将它们直接发送到能够理解实体化项目的浏览器,也可以使用html_entity_decode() 撤消实体化操作。
【讨论】: