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

首頁 微信小程式 微信開發(fā) mysql保存emoji表情(微信開髮用戶暱稱..)

mysql保存emoji表情(微信開髮用戶暱稱..)

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)報以上錯誤的時候,可能是java代碼中的字段與數(shù)據(jù)庫中的字段類型或者編碼不匹配,這種情況只要統(tǒng)一格式或者編碼就可以了。

這裡主要介紹emoji的圖像插入資料庫的錯誤以及解決方法


使用mysql數(shù)據(jù)庫的時候,如果字符集是UTF-8並且在java伺服器上,當(dāng)存儲emoji表情的時候,會拋出以上異常(例如微信開發(fā)獲取用戶暱稱,有的用戶的暱稱用的是emoji的圖像)

這是由於字符集不支持的異常,因為utf-8編碼有可能是兩個,三個,四個字節(jié),其中Emoji表情是四個字節(jié),而mysql的utf-8編碼最多三個字節(jié),所以導(dǎo)致資料插不進去。
解決方式:
一.從資料庫層級解決(mysql支援utf8mb4的版本是5.5.3+,必須升級到較新版本)
? ? ?注意:
? ? ? (1.修改database,table,column字元集

? ? ? (2.修改mysql設(shè)定檔my.cnf(window為my.ini)


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;

?

?還是無法試用utf8mb4

? ? ? ?(4.伺服器端的db設(shè)定檔

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

?

autoReconnection(當(dāng)資料庫連線異常中斷時,是否自動重新連線?預(yù)設(shè)為false)強烈建議配上,忽略這個屬性,可能導(dǎo)致快取緣故,
? ? 沒有讀取到DB最新的配置,導(dǎo)致一直無法試用utf8mb4字元集;



二.從應(yīng)用層的面向解決

? ? 在取得資料之後往資料庫存前先進行編碼:?


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

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

? ? ?  從應(yīng)用層進行解決的時候建議不要在對象getter,setter方法中直接編碼,因為放入對象的時候setter方法將nickname進行編碼,當(dāng)插入數(shù)據(jù)庫的時候相當(dāng)於從對像中調(diào)用getter方法將你參考取出這就將之前setter編碼過的nickname又重新解碼了,等於未對Nickname進行任何操作。關(guān)注PHP中文網(wǎng)!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)