【发布时间】:2014-03-21 17:48:04
【问题描述】:
在 VARCHAR 和 TEXT MySQL 数据库数据类型中,从 HTML TEXTAREA 字段插入或更新内容后,我不断看到字符出现在每个空格之前。
当我在插入/更新之前对 PHP 数据进行 vardump 时, 字符不存在。
我尝试将数据库和表从 latin1_swedish_ci 的默认排序规则转换为 utf8_general_ci 编码,然后再次插入/更新数据,但 Â 字符仍然出现在每个空格之前的文本中。
老实说,我对排序规则和字符编码没有很好的掌握,并认为默认情况下会很好,但后来我遇到了这个问题。如何防止出现这些多余的字符?
[编辑]:如果我第一次将文本更新到数据库,多余的字符不会出现。如果我从数据库字段中加载文本,然后再次更新它,则会出现 Â 字符。
【问题讨论】:
-
您没有将此文本视为 UTF-8。可能是 ISO-8859-1?
-
排序规则与此无关。排序规则基本上是“字母顺序”,并确定例如德语 ringel-s 是排在 B 之后还是 S 之后。
-
UTF-8 从 A-Z 一路
-
你应该检查的是你收到的数据是否是你期望的编码(在发布表单时检查浏览器编码),并检查返回的数据是否被浏览器视为在 UTF-8 中(再次:浏览器编码)
-
@Tularis,每个排序规则都有一个默认字符集,很多人使用 PHPMyAdmin 通过设置排序规则来设置字符集。
标签: php html mysql encoding character-encoding