国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah applet WeChat pembangunan WeChat mysql保存emoji表情(微信開(kāi)發(fā)用戶昵稱..)

mysql保存emoji表情(微信開(kāi)發(fā)用戶昵稱..)

Feb 15, 2017 am 10:47 AM

?

java.sql.SQLException:?Incorrect?string?value:?'\xF0\x9F\x92\x94'?for?colum?n?'name'?at?row?1?at?com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)?
at?com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)?
at?com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)?
at?com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)?
at?com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)?
at?com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)?
at?com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662)?
at?com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1581)

?

當(dāng)報(bào)以上錯(cuò)誤的時(shí)候,可能是java代碼中的字段與數(shù)據(jù)庫(kù)中的字段類(lèi)型或者編碼不匹配,這種情況只要統(tǒng)一格式或者編碼就就可以了。

這里主要介紹emoji的圖像插入數(shù)據(jù)庫(kù)的錯(cuò)誤以及解決方法


使用mysql數(shù)據(jù)庫(kù)的時(shí)候,如果字符集是UTF-8并且在java服務(wù)器上,當(dāng)存儲(chǔ)emoji表情的時(shí)候,會(huì)拋出以上異常(比如微信開(kāi)發(fā)獲取用戶昵稱,有的用戶的昵稱用的是emoji的圖像)

這是由于字符集不支持的異常,因?yàn)閡tf-8編碼有可能是兩個(gè),三個(gè),四個(gè)字節(jié),其中Emoji表情是四個(gè)字節(jié),而mysql的utf-8編碼最多三個(gè)字節(jié),所以導(dǎo)致數(shù)據(jù)插不進(jìn)去。
解決方式:
一.從數(shù)據(jù)庫(kù)層面進(jìn)行解決(mysql支持utf8mb4的版本是5.5.3+,必須升級(jí)到較新版本)
? ? ?注意:
? ? ? (1.修改database,table,column字符集

ALTER?DATABASE?database_name?CHARACTER?SET?=?utf8mb4?COLLATE?=?utf8mb4_unicode_ci;ALTER?TABLE?table_name?CONVERT?TO?CHARACTER?SET?utf8mb4?COLLATE?utf8mb4_unicode_ci;ALTER?TABLE?table_name?CHANGE?column_name?VARCHAR(191)?CHARACTER?SET?utf8mb4?COLLATE?utf8mb4_unicode_ci;


? ? ? (2.修改mysql配置文件my.cnf(window為my.ini)

[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'

?


? ? ? ?(3.用的是java服務(wù)器,升級(jí)或者確保mysql connection版本高于5.1.13否則仍然不能試用utf8mb4
? ? ? ?(4.服務(wù)器端的db配置文件

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=TRUE
jdbc.username=root
jdbc.password=password

?


? ? 如果升級(jí)了mysql-connector,其中的characterEncoding=utf8可以自動(dòng)被識(shí)別為utf8mb4(兼容原來(lái)的utf8),而
? ? autoReconnection(當(dāng)數(shù)據(jù)庫(kù)連接異常中斷時(shí),是否自動(dòng)重新連接?默認(rèn)為false)強(qiáng)烈建議配上,忽略這個(gè)屬性,可能導(dǎo)致緩存緣故 ,
? ? 沒(méi)有讀取到DB最新的配置,導(dǎo)致一直無(wú)法試用utf8mb4字符集;

二.從應(yīng)用層的方面進(jìn)行解決
? ? 在獲得數(shù)據(jù)之后往數(shù)據(jù)庫(kù)存之前先進(jìn)行編碼:?

URLEncoder.encode(nickName,?"utf-8");

?

? ? 當(dāng)從數(shù)據(jù)庫(kù)中取出準(zhǔn)備顯示的時(shí)候進(jìn)行解碼,?

URLDecoder.decode(nickname,?"utf-8");

? ? ?  從應(yīng)用層進(jìn)行解決的時(shí)候建議不要在對(duì)象getter,setter方法中直接編碼,因?yàn)榉湃雽?duì)象的時(shí)候setter方法將nickname進(jìn)行編碼,當(dāng)插入數(shù)據(jù)庫(kù)的時(shí)候相當(dāng)于從對(duì)象中調(diào)用getter方法將你參考取出這就將之前setter編碼過(guò)的nickname又重新解碼了,等于未對(duì)Nickname進(jìn)行任何操作。依然會(huì)出現(xiàn)以上問(wèn)題。

更多mysql保存emoji表情(微信開(kāi)發(fā)用戶昵稱..)?相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)