【发布时间】:2010-11-21 12:54:52
【问题描述】:
我做了以下事情:
- 我有一个包含数据的电子表格。其中一行包含一个 ü 字符。
- 我将其保存为 OpenOffice.org 中的 CSV 文件。当它要求我输入字符编码时,我选择 UTF-8。
- 我使用 Navicat 创建 MySQL 数据库表,InnoDB 使用 UTF-8 utf8_general 编码并导入 CSV。
- 我尝试使用 PHP 函数
htmlspecialchars($string, ENT_COMPAT, 'UTF-8'),其中$string是包含特殊 ü 字符的字符串。
它给了我一个错误:参数中的多字节序列无效。当我将'UTF-8' 更改为'ISO8859-1' 时,不会引发错误,但会显示不正确的字符。 (“未知字符”字符,看起来像<?>)
如果我使用 HTML 表单更新数据库中的字符串,错误消失并且字符显示正确,但是,当我在 Navicat 中查看记录时,它看起来是两个字符:
[1/4][A with some thing on top of it]
一些不被视为一个字符的多字节。`
发生了什么,哪里出了问题,我能做些什么?
【问题讨论】:
标签: php mysql character-encoding htmlspecialchars navicat