最近碰到一個存儲表情失敗,需要做到三件事,
1.表和該項都需要支持
這時候,只是數據庫表支持存儲,但是存儲轉換的時候,還是會有問題,以下兩種方式可以處理:
2.代碼進行轉義處理 (推薦: 代碼處理對於程序員來說最快,因爲修改數據庫編碼,有時建表,會修改編碼格式)
把需要存儲的表情,在保存的時候,通過Base64封裝一層,而獲取的時候,不用轉換。
public static void main(String args[]){
String str = "👽夏天";
try {
String s = new String(Base64.getEncoder().encode(str.getBytes()), "UTF-8");
System.out.println(s);
String ss = new String(Base64.getDecoder().decode(s));
System.out.println(ss);
}catch (UnsupportedEncodingException e){
System.out.println(e.getCause());
}
}
3.修改數據庫的默認編碼
a.查看數據庫的編碼格式
1 2 3 |
|
修改配置文件my.cnf 增加 character
-
set
-server=utf8mb4
如果不知道配置文件在哪裏的話可以根據一下命令查找
1 2 3 |
|
通常服務器首先會讀取/etc/my.cnf文件,如果發現該文件不存在,再依次嘗試從後面的幾個路徑進行讀取。
修改配置文件後保存,並重啓mysql服務
1 2 3 |
|
如果數據庫、表已經創建可以直接修改數據庫或表的編碼格式
查看數據表的編碼格式
1 |
|
修改數據庫的編碼格式
1 |
|
修改數據表格編碼格式
1 |
|
修改字段編碼格式
1 |
|