欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql/Java服務(wù)端對(duì)emoji的支持與問(wèn)題解決方法詳解

 更新時(shí)間:2019年10月29日 11:54:48   作者:xuexuan_050848  
這篇文章主要介紹了mysql/Java服務(wù)端對(duì)emoji的支持與問(wèn)題解決方法,結(jié)合實(shí)例形式分析了mysql/Java服務(wù)端對(duì)emoji字符集存儲(chǔ)及支持問(wèn)題解決方法,需要的朋友可以參考下

本文實(shí)例講述了mysql Java服務(wù)端對(duì)emoji的支持與問(wèn)題解決方法。分享給大家供大家參考,具體如下:

問(wèn)題描述

將底層抓取的微博數(shù)據(jù)存入mysql,有些數(shù)據(jù)存入失敗,查看Tomcat后,核心錯(cuò)誤信息如下:

// 拋出字符集不支持的異常
sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x97\xF0\x9F...' for column 'CONTENT' at row 1

原因分析

  • MYSQL 5.5 之前, utf8 編碼只支持1~3個(gè)字節(jié),即BMP這部分的unicode編碼區(qū)(基本就是0000~FFFF這一區(qū))。
  • Emoji表情是4個(gè)字節(jié),而mysql的utf8編碼最多3個(gè)字節(jié),所以導(dǎo)致數(shù)據(jù)插不進(jìn)去
  • 5.5之后,mysql加入utf8mb4編碼,可支持4個(gè)字節(jié),即一個(gè)字符最多能有4字符,因此utf8mb4編碼可支持更多的字符集。
  • 因此,如果項(xiàng)目要存儲(chǔ)移動(dòng)產(chǎn)品的用戶文本,必須將DB字符集從UTF8/GBK等傳統(tǒng)字符集升級(jí)到utf8mb4

【注】

  • utf8mb4兼容utf8,且比utf8能表示更多的字符。所以將DB字符集從UTF8或GBK等傳統(tǒng)字符集升級(jí)到utf8mb4時(shí)不用擔(dān)心字符的兼容性問(wèn)題

解決方法

過(guò)濾特殊的表情符

content = content.replaceAll("[\\x{10000}-\\x{10FFFF}]", "");// 簡(jiǎn)單粗暴,不人性化

升級(jí)數(shù)據(jù)庫(kù)字符集

1、utf8mb4支持的mysql版本為5.5.3+,若mysql低于該版本請(qǐng)先升級(jí)

2、修改database、table和column字符集

3、修改mysql配置文件my.cnf(windows為my.ini),my.cnf一般在etc/mysql/目錄下,找到后在以下三部分里添加如下內(nèi)容:

[client] default-character-set = utf8mb4

[mysql] default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

4、重啟mysql并查看字符集

在mysql命令行輸入:

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

重啟之前的字符集

重啟之后的字符集

【注】

  • 必須保證以下字段為utf8mb4
    • character_set_client
    • character_set_connection
    • character_set_database
    • character_set_results
    • character_set_server

以上4步完成后,利用mysql客戶端navicat在表中手動(dòng)加入Emoji表情⛄,若能保存成功說(shuō)明數(shù)據(jù)庫(kù)已升級(jí)成功。

這些字符集配置的具體區(qū)別參考 深入Mysql字符集設(shè)置

5、檢查服務(wù)器端db配置文件

// 配置spring時(shí)使用的鏈接如下:
url="jdbc:mysql://localhost:3306/gzhou?allowMultiQueries=true&useUnicode=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&autoReconnect=true&autoReconnectForPools=true&failOverReadOnly=false&maxReconnects=10"
// 若characterEncoding=utf8mb4,插入數(shù)據(jù)時(shí)報(bào)錯(cuò)Caused by: java.sql.SQLException: Unsupported character encoding 'utf8mb4'
// 去掉characterEncoding或characterEncoding=utf8

Emoji表情

android系統(tǒng)中,搜狗、百度輸入法自帶Emoji表情。

【注】

如果系統(tǒng)之間Emoji表情符號(hào)不兼容,只能看到方塊;

更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過(guò)程技巧大全》及《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總

希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。

相關(guān)文章

  • 全面講解MySQL子查詢

    全面講解MySQL子查詢

    子查詢就是將一個(gè)查詢結(jié)果作為判斷條件或者作為一張?zhí)摂M表在這個(gè)結(jié)果的基礎(chǔ)上進(jìn)行另一個(gè)查詢,本文就詳細(xì)的介紹了MySQL子查詢 ,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • mysql 8.0.25之取巧解決修改密碼報(bào)錯(cuò)的問(wèn)題

    mysql 8.0.25之取巧解決修改密碼報(bào)錯(cuò)的問(wèn)題

    這篇文章主要介紹了mysql8.0.25之取巧解決修改密碼報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • MySQL表的重命名字段添加及字段屬性修改操作語(yǔ)法

    MySQL表的重命名字段添加及字段屬性修改操作語(yǔ)法

    這篇文章主要為大家介紹了MySQL表的重命名字段添加及字段屬性修改語(yǔ)法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • MySQL事務(wù)日志(redo?log和undo?log)的詳細(xì)分析

    MySQL事務(wù)日志(redo?log和undo?log)的詳細(xì)分析

    innodb事務(wù)日志包括redo?log和undo?log,redo?log是重做日志,提供前滾操作,undo?log是回滾日志,提供回滾操作,下面這篇文章主要給大家介紹了關(guān)于MySQL事務(wù)日志(redo?log和undo?log)的詳細(xì)分析,需要的朋友可以參考下
    2022-04-04
  • MySQL創(chuàng)建數(shù)據(jù)庫(kù)并支持中文字符的操作方法

    MySQL創(chuàng)建數(shù)據(jù)庫(kù)并支持中文字符的操作方法

    這篇文章主要介紹了MySQL創(chuàng)建數(shù)據(jù)庫(kù)并支持中文字符的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具體一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • MySQL在線DDL gh-ost使用總結(jié)

    MySQL在線DDL gh-ost使用總結(jié)

    在本篇內(nèi)容里小編給大家整理了關(guān)于MySQL在線DDL gh-ost使用方法和相關(guān)知識(shí)點(diǎn),需要的朋友們學(xué)習(xí)下。
    2019-02-02
  • Mysql主鍵UUID和自增主鍵的區(qū)別及優(yōu)劣分析

    Mysql主鍵UUID和自增主鍵的區(qū)別及優(yōu)劣分析

    這篇文章主要介紹了Mysql主鍵UUID和自增主鍵的區(qū)別及優(yōu)劣分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-02-02
  • MySQL刪除外鍵問(wèn)題小結(jié)

    MySQL刪除外鍵問(wèn)題小結(jié)

    mysql刪除外鍵抱錯(cuò)Error on rename of ./ruler/test2child to ./ruler/#sql2-298-92 (errno: 152),怎么回事,有好的方法可以解決嗎?下面看下腳本之家小編給大家?guī)?lái)的解決思路
    2016-08-08
  • mysql數(shù)據(jù)庫(kù)navicat數(shù)據(jù)同步時(shí)誤刪除部分?jǐn)?shù)據(jù)的解決

    mysql數(shù)據(jù)庫(kù)navicat數(shù)據(jù)同步時(shí)誤刪除部分?jǐn)?shù)據(jù)的解決

    本文主要介紹了mysql數(shù)據(jù)庫(kù)navicat數(shù)據(jù)同步時(shí)誤刪除部分?jǐn)?shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • MySQL讀取JSON轉(zhuǎn)換的方式

    MySQL讀取JSON轉(zhuǎn)換的方式

    這篇文章主要介紹了MySQL讀取JSON轉(zhuǎn)換的方式,本文給大家分享兩種方式給大家講解處理方式,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03

最新評(píng)論