简短的故事:我无法将像“????”这样的实体存储在 MySQL 数据库中,无论是通过使用 Ruby on Rails 应用程序中的文本字段(使用默认的 UTF-8 编码)还是通过直接使用 MySQL GUI 输入它应用程序。
据我所知,所有的汉字和部首都可以毫无问题地输入数据库,但这些很少输入的“汉字组件”则不行。上面提到的字符是unicode U+20089和html实体𠂉
我可以通过输入将其显示在页面上<html>𠂉</html>
并删除 html 转义,但我想将其简单地存储为 unicode 字符并保持 html 转义就位。还有许多其他中文“组件”(完整字符的一部分,通常由 2 或 3 个笔画组成)也会导致同样的问题。
根据此页面,提到的字符位于 UTF-8 字符集中:http://www.fileformat.info/info/unicode/char/20089/charset_support.htm
但在相邻的“...20089/index.htm”页面上,有一条警告说它不是有效的 unicode 字符。
作为参考,可以在 Mac OS X 中通过搜索字符调色板(国际菜单,“显示字符调色板”)、按部首搜索并在“丿”部首下查找来找到该实体。
抱歉,如果这太开放了……这样的字符可以存储在基于 UTF-8 的数据库中吗?这个字符如何既受支持又不受支持,既存在于字符集中又无效?
您使用的是哪个版本的 MySQL?如果是 5.5 之前的版本,则无法存储该字符,因为它需要四个字节,而 MySQL 最多只支持三个字节的 UTF-8(即 BMP 中的字符)。 MySQL 5.5添加了对四字节UTF-8的支持,但是你必须指定utf8mb4
作为字符集。
ref: http://dev.mysql.com/doc/refman/5.5/en/charset-unicode.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)