标签:
iOS 5.0之前,苹果都是采用3个字节来承接emoji表情,Java的普通char可以支持显示。但iOS 5.0之后, 苹果升级了系统自带的emoji表情输入法,用的Unicode 6标准来统一,是采用4个bytes来承接一个 emoji表情。如果不做处理的话,这种表情直接存储到mysql5.5以下的数据库是会报错的。
就像这两个表情一样:, 在Windows 8以下估计都不支持显示,可能会显示成框框,可能压根就是空白,
你可以在Mac中使用Safari浏览器中,就可以看到。经过测试,在Mac就算用Chrome浏览器(Version
25.0.1364.172)也是不行的。
iOS5.0 Emoji表情示例
这种数据在Mysql 5.5之前,UTF-8支持1-3个字节的编码,从Mysql5.5开始后,可以支持4个字节的UTF编码,但要特殊标记。修改 Mysql相应存储字段为utf8mb4。修改语句如下
sql:
ALTER TABLE table_name
MODIFY COLUMN content varchar(500) CHARACTER
SET utf8mb4 COLLATE utf8mb4_unicode_ci
DEFAULT NULL COMMENT ‘content of message‘;
在某种业务情景下,我们可以选择过滤掉这种“非法”的字符。我采用的方式是,在字符上面做操作,下面是Java示例代码,核心的代码附上,应该是 无法直接下载就能够编译,你得小小的做一些微调,没有额外的依赖:
iOS 5.0之前,苹果都是采用3个字节来承接emoji表情,Java的普通char可以支持显示。但iOS 5.0之后,
苹果升级了系统自带的emoji表情输入法,用的Unicode 6标准来统一,是采用4个bytes来承接一个
emoji表情。如果不做处理的话,这种表情直接存储到mysql5.5以下的数据库是会报错的。
就像这两个表情一样:, 在Windows 8以下估计都不支持显示,可能会显示成框框,可能压根就是空白,
你可以在Mac中使用Safari浏览器中,就可以看到。经过测试,在Mac就算用Chrome浏览器(Version
25.0.1364.172)也是不行的。
iOS5.0 Emoji表情示例
这种数据在Mysql 5.5之前,UTF-8支持1-3个字节的编码,从Mysql5.5开始后,可以支持4个字节的UTF编码,但要特殊标记。修改 Mysql相应存储字段为utf8mb4。修改语句如下:
在某种业务情景下,我们可以选择过滤掉这种“非法”的字符。我采用的方式是,在字符上面做操作,下面是Java示例代码,核心的代码附上,应该是 无法直接下载就能够编译,你得小小的做一些微调,没有额外的依赖:
SAE的数据库也不支持EMOJI表情 引用 :http://cloudbbs.org/forum.php?mod=viewthread&tid=23209
微信表情过滤 java "java.sql.SQLException: Incorrect string value: '\"
标签:
原文地址:http://www.cnblogs.com/yaoyao66123/p/4331957.html