无法显示外国字符和表情符号。
编辑澄清
用户在文本字段中键入表情符号字符,然后将其发送到服务器(php)并保存到数据库(mysql)中。在显示文本时,我们从服务器获取一个JSON编码的字符串,该字符串在客户端进行解析和显示。
问题:保存在数据库中的“奖杯”表情符号的字符为
%uD83C%uDFC6
当它被发送回客户端时,我们看不到表情符号图片,我们实际上看到了原始编码文本。
我们如何让客户端将该文本作为表情符号字符阅读并显示图像?
(所有在iphone /手机游戏中)
谢谢!
答案 0 :(得分:1)
检查客户端,Web服务器和数据库表使用的编码。确保它们都使用可以处理您关注的字符的编码。
答案 1 :(得分:1)
看起来问题是我的MySql编码... utf8mb4会允许它 - 不幸的是它在MySQL v5.5之前不可用
答案 2 :(得分:0)
保存在数据库中的“奖杯”表情符号的字符读作%uD83C%uDFC6
然后您的数据已被破坏。 %u
转义特定于JavaScript escape()
函数,通常不应使用它。确保您的textarea-> PHP处理使用符合标准的编码,例如encodeURIComponent
,如果您需要将JS变量放入URL查询中。
然后,在PHP层中使用正确的原始UTF-8字符串,您可以担心让MySQL存储像Basic Multilingual Plane之外的表情符号这样的字符。最好的方法是具有utf8mb4
排序规则的列;如果不可用,请尝试二进制列,这将允许您存储任何字节序列(当它返回时将其视为UTF-8)。但是,这样你就不会得到不区分大小写的比较。