升级 MySql 支持 emoji 表情 与 utf8mb4

2016-10-27:如果一切该设置都设置了还是无效的话,试试在 mysql 链接字符串里面去掉 charset 参数!如下:

url=jdbc\:mysql\://42.xx.xx.4\:7306/abc_test2?useUnicode\=true

有童鞋对 Emoji 表情认知不深,对使用 Emoji 抵制,也不愿意去百度,所以有必要先科普下。

  • Emoji 表情是字符不是图片,如果客户端、数据库不支持就升级一下,浏览器也是。
  • 既然是字符,那可不可人工处理替换掉?可以是可以但是不建議。其实升级下相关组件版本就可以了。
  • Emoji 表情不是苹果独家的,他属于 unicode,是规范不是私有方案,大家都可以愉快地使用,不需要转换。

——其实这么简单的问题要说半天也是醉了。

不过就算升级 mysql 也不见得容易。当初以为升级数据库然后改改编码就可以,但试过之后没那么容易,不知道是不是 MySql 客户端的问题,NativeCat 和官方的 Workbench 也是如此。

通过客户端改编不行滴……下拉菜单那里無論怎么选择都是不行的……

相关参考:

  • http://bbs.csdn.net/topics/390055415
  • http://stackoverflow.com/questions/13653712/java-sql-sqlexception-incorrect-string-value-xf0-x9f-x91-xbd-xf0-x9f
  • http://afei2.sinaapp.com/?p=518&utm_source=tuicool&utm_medium=referral
  • http://www.linuxidc.com/Linux/2014-07/104231.htm
  • http://blog.itpub.net/28624388/viewspace-1064046/
  • http://mengkang.net/384.html  (替换的方法)

复制一个命令

alter table foo.foo convert to character set utf8mb4 collate utf8mb4_unicode_ci

然后 Java 代码中必须声明这个:

SET NAMES 'utf8mb4'

才可以插入 Emoji 表情。

Mysql 配置

[client]
default-character-set = utf8mb4

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

还有就是升级一下 JDBC 驱动。

测试代码,也可以看看你的浏览器到底能否正确显示 Emoji 表情(不能显示就是 问号或者方块,升级浏览器吧!)。

Oh mygod,CSDN 的数据库插不入!要碰到 Emoji 字符就中断了!我还是用图片吧。


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Test {

    public static void main(String[] args) {
        System.out.println("test string=" + "

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值