有童鞋對 Emoji 表情認知不深,對使用 Emoji 抵制,也不願意去百度,所以有必要先科普下。
Emoji 表情是字符不是圖片,如果客戶端、數據庫不支持就升級一下,浏覽器也是。既然是字符,那可不可人工處理替換掉?可以是可以但是不建議。其實升級下相關組件版本就可以了。Emoji 表情不是蘋果獨家的,他屬於 unicode,是規范不是私有方案,大家都可以愉快地使用,不需要轉換。——其實這麼簡單的問題要說半天也是醉了。
不過就算升級 mysql 也不見得容易。當初以為升級數據庫然後改改編碼就可以,但試過之後沒那麼容易,不知道是不是 MySql 客戶端的問題,NativeCat 和官方的 Workbench 也是如此。
通過客戶端改編不行滴……下拉菜單那裡無論怎麼選擇都是不行的……
相關參考:
http://bbs.csdn.net/topics/390055415http://stackoverflow.com/questions/13653712/java-sql-sqlexception-incorrect-string-value-xf0-x9f-x91-xbd-xf0-x9fhttp://afei2.sinaapp.com/?p=518&utm_source=tuicool&utm_medium=referralhttp://www.linuxidc.com/Linux/2014-07/104231.htmhttp://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=" + "