?
解決亂碼問題一個原則:存取系統使用一致的編碼規則。
多使用mysql的原生命令行,這樣才能做更多的事情。
?
確認應用系統需要使用的編碼
java的默認編碼是跟隨系統的,有的說是默認UNICode,在java中可以使用 String defaultCharsetName=Charset.defaultCharset().displayName();顯示編碼。
?
確認并設置MySql的數據庫的編碼
1. 顯示編碼,簡單的方法命令是:status; 或者mysql> SHOW VARIABLES LIKE 'character%';
mysql> status
--------------
C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin\mysql.exe ?Ver 14.12 Distrib 5
.0.67, for Win32 (ia32)
?
Connection id: ? ? ? ? ?3
Current database:
Current user: ? ? ? ? ? root@localhost
SSL: ? ? ? ? ? ? ? ? ? ?Not in use
Using delimiter: ? ? ? ?;
Server version: ? ? ? ? 5.0.67-community-nt MySQL Community Edition (GPL)
Protocol version: ? ? ? 10
Connection: ? ? ? ? ? ? localhost via TCP/IP
Server characterset: ? ?gbk
Db ? ? characterset: ? ?gbk
Client characterset: ? ?gbk
Conn. ?characterset: ? ?gbk
TCP port: ? ? ? ? ? ? ? 3306
Uptime: ? ? ? ? ? ? ? ? 12 min 59 sec
?
Threads: 3 ?Questions: 32 ?Slow queries: 0 ?Opens: 32 ?Flush tables: 1 ?Open tab
les: 26 ?Queries per second avg: 0.041
--------------
?
2. 修改編碼
確保萬無一失必須所有的都設置成需要的字符,這里我們以utf8為例子。
2.1 my.ini配置文件中的修改,(命令行中使用set設置的重啟服務后會失效),各個標簽下面的都需要修改:
C:\Program Files (x86)\MySQL\MySQL Server 5.0\my.ini
[client]
default-character-set=utf8
?
[mysql]
default-character-set=utf8
?
[mysqld]
default-character-set=utf8
?
2.2 Server characterset是沒辦法在配置文件中修改的,但也不用重裝數據庫,只需要重新啟動配置程序MySQLInstanceConfig.exe就可以了。
C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin\MySQLInstanceConfig.exe
在選擇編碼的地方選擇utf8就可以了,默認的是Latin1。選的二個或者第三個,第二個默認就是UTF8, 第三個手動選UTF8.
?
?
?
重啟mysql服務
? cmd下:
? net stop mysql
? net start mysql
?
?
mysql> use qba_db;
Database changed
mysql> status;
--------------
C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin\mysql.exe ?Ver 14.12 Distrib 5
.0.67, for Win32 (ia32)
?
Connection id: ? ? ? ? ?168
Current database: ? ? ? qba_db
Current user: ? ? ? ? ? root@localhost
SSL: ? ? ? ? ? ? ? ? ? ?Not in use
Using delimiter: ? ? ? ?;
Server version: ? ? ? ? 5.0.67-community-nt MySQL Community Edition (GPL)
Protocol version: ? ? ? 10
Connection: ? ? ? ? ? ? localhost via TCP/IP
Server characterset: ? ?utf8
Db ? ? characterset: ? ?utf8
Client characterset: ? ?utf8
Conn. ?characterset: ? ?utf8
TCP port: ? ? ? ? ? ? ? 3306
Uptime: ? ? ? ? ? ? ? ? 20 days 11 hours 4 min 19 sec
?
Threads: 5 ?Questions: 3224 ?Slow queries: 0 ?Opens: 151 ?Flush tables: 1 ?Open
tables: 0 ?Queries per second avg: 0.002
--------------
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
