我们正在开发一个 iPhone 应用程序,它将表情符号从 iPhone 发送到服务器端 PHP 并插入到 MySQL 表中。我正在做服务器端的工作。
但是insert语句执行成功后,插入的值变成空了。
我可以正确插入字段(varchar)的是文本,但是一旦包含表情符号,
只需插入文字即可自动剪切表情符号。
有人给我建议将字段类型设置为 Blog,以便它可以存储图像数据。
但插入的值并不总是包含表情符号的大小写,并且尺寸很小。
*我使用 mysql_real_escape_string 来插入值。
大多数 iOS 表情符号使用 Unicode 表的基本多语言平面之上的代码点。例如,????(张开嘴微笑的脸和微笑的眼睛)位于 U+1F604。
现在,看http://dev.mysql.com/doc/refman/5.5/en/charset-unicode.html http://dev.mysql.com/doc/refman/5.5/en/charset-unicode.html.
MySQL 5.5 版本之前仅支持 BMP 的 UTF-8,其中包括 U+0000 和 U+FFFF 之间的字符(即仅实际 UTF-8 的子集;MySQL 的utf8
不是真正的 UTF-8)。它不能存储代码点 U+1F604 处的字符或其他类似的“高位字符”。 MySQL 5.5+ 支持utf8mb4
(实际的UTF-8),utf16
and utf32
,能够对这些字符进行编码。如果您使用的是 MySQL 5.5+,请使用这些列字符集之一,并确保与 PHP 之间的连接编码使用相同的字符集。如果您使用的是 MySQL BLOB列类型。该类型存储原始字节而不关心其中的“字符”。缺点是您将无法有效地搜索或索引文本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)