《MySQL字符問題》要點(diǎn):
本文介紹了MySQL字符問題,希望對您有用。如果有疑問,可以聯(lián)系我們。
中文寫入亂碼問題:我輸入的中文編碼是urf8的,建的庫是urf8的,但是插入mysql總是亂碼,一堆"???????????????????????"
我用的是ibatis,終于找到原因了,我是這么辦理的:
原url地址是:jdbc:mysql://localhost:3306/comment1
改為:jdbc:mysql://localhost:3306/comment1??useUnicode=true&characterEncoding=UTF-8
就OK了.
2.Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1
這個問題,原因是UTF-8編碼有可能是兩個、三個、四個字節(jié).Emoji表情或者某些特殊字符是4個字節(jié),而Mysql的utf8編碼最多3個字節(jié),所以數(shù)據(jù)插不進(jìn)去.
我的辦理方案是這樣的
1.在mysql的安裝目錄下找到my.ini,作如下修改:
[mysqld]
character-set-server=utf8mb4
[mysql]
default-character-set=utf8mb4
修改后重啟Mysql
2. 將已經(jīng)建好的表也轉(zhuǎn)換成utf8mb4
命令:alter table TABLE_NAME convert to character set utf8mb4 collate utf8mb4_bin; (將TABLE_NAME替換成你的表名)
然后就OK了.網(wǎng)上流傳的一個版本增加了一個步驟,便是把mysql環(huán)境變量將character_set_client,character_set_connection,character_set_database,character_set_results,character_set_server 都修改成utf8mb4
歡迎參與《MySQL字符問題》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/7655.html