Mysql UTF8 解決亂碼

1,設置mysql默認編碼

 

首先查詢一下show variables like 'character%'; 

 

確定所有的character都設置成utf-8  

 

參考 http://www.diybl.com/course/7_databases/mysql/myxl/20081127/152726.html


mysql>show variables like 'character%';

+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

 

2,

a) 設置web容器的編碼格式。爲你的servlet的doGet或doPost方法開始處加入如下代碼:
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
b) 爲每個jsp頁面指定其編碼格式。<%@ page pageEncoding="utf-8"%>
c) 在連接數據庫用的URL後加入:useUnicode=true;characterEncoding=utf-8 如:
                        url="jdbc:mysql:///db1?useUnicode=true&characterEncoding=utf-8",

如果是xml文件中     url="jdbc:mysql:///db1?useUnicode=true&amp;characterEncoding=utf-8",

 

3, 
如果還出現亂碼,則有可能是 表中的字段 的編碼不是utf-8;

 

如果出現亂碼的表是 book

 

mysql> show create table book;

+--------------------------+----------------------------+ 

 | Table | Create Table|
+--------------------------+----------------------------+

|book | create table 'book'(

     'id'  int(10) unsigned NOT NULL AUTO_INCREMENT,

     'bookname'  varchar(45)  CHARACTER SET latin1 NOT NULL,

     'source'  varchar(45)   CHARACTER SET latin1 NOT NULL,

     PRIMARY KEY('id')

) ENGINE= MyISAM DEFAULT CHARSET=utf8|

+--------------------------+----------------------------+

 

如果發現字段的字符集不是UTF8. 則對其進行修改

 

採用其他客戶端工具來設定,例如 Navicat/MySQL Front/PhpMyAdmin

 

或者採用 ALTER 語法來轉換字段的字符集

ALTER TABLE book CHANGE bookname bookname CHAR(20) CHARACTER SET utf8;
 
我在網上找到很多前2點的資料,但是怎麼弄都還是亂碼,最後才發現原來是字段的原因,折騰死了都。
參考資料:
mysql字符集 FAQ  http://imysql.cn/taxonomy/term/24
設置mysql默認編碼  http://www.diybl.com/course/7_databases/mysql/myxl/20081127/152726.html
用UTF-8完全解決JSP MYSQL多國語言文字編碼問題  http://www.360doc.com/content/070428/10/16749_471035.html
發佈了20 篇原創文章 · 獲贊 2 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章