天天看點

mysql查詢時亂碼解決辦法

一次建表時顯示中文正常,建表後查詢卻是亂碼。

<code>mysql&gt; show tables;</code>

<code>+</code><code>----------------+</code>

<code>| Tables_in_test |</code>

<code>| ?????          |</code>

<code>| table1         |</code>

<code>2 </code><code>rows</code> <code>in</code> <code>set</code> <code>(0.00 sec)</code>

一般出現這種情況是因為用戶端和服務端的編碼類型不一緻導緻。

檢視一些用戶端和服務端的編碼類型:

<code>mysql&gt;  show variables </code><code>like</code> <code>"%char%"</code><code>; </code>

<code>+</code><code>--------------------------+----------------------------+</code>

<code>| Variable_name            | Value                      |</code>

<code>| character_set_client     | latin1                     |</code>

<code>| character_set_connection | latin1                     |</code>

<code>| character_set_database   | utf8                       |</code>

<code>| character_set_filesystem | </code><code>binary</code>                     <code>|</code>

<code>| character_set_results    | latin1                     |</code>

<code>| character_set_server     | utf8                       |</code>

<code>| character_set_system     | utf8                       |</code>

<code>| character_sets_dir       | /usr/share/mysql/charsets/ |</code>

<code>8 </code><code>rows</code> <code>in</code> <code>set</code> <code>(0.00 sec)</code>

<code>mysql&gt;</code>

從中可以看出服務端是utf8,而用戶端是latin,臨時設定一下用戶端編碼:

<code>SET</code> <code>character_set_client=</code><code>'utf8'</code><code>;  </code>

<code>SET</code> <code>character_set_connection=</code><code>'utf8'</code><code>;  </code>

<code>SET</code> <code>character_set_results=</code><code>'utf8'</code><code>;</code>

再次檢視一下表是否亂碼:

<code>mysql&gt; show tables;                          </code>

<code>+</code><code>-----------------+</code>

<code>| Tables_in_test  |</code>

<code>| 學生資訊表 |</code>

<code>| table1          |</code>

果然是編碼不一緻導緻,解決:

1.如果是資料庫編碼不一緻導緻亂碼,則需要修改資料庫的編碼類型:

<code>show </code><code>create</code> <code>database</code> <code>test;</code>

<code>alter</code> <code>database</code> <code>test </code><code>character</code> <code>set</code> <code>utf8 </code><code>COLLATE</code> <code>utf8_general_ci;</code>

2.如果是用戶端問題,則需編輯配置檔案,添加如下一行:

<code>[client]</code>

<code>default-character-</code><code>set</code><code>=utf8</code>

本文轉自 王家東哥 51CTO部落格,原文連結:http://blog.51cto.com/xiaodongge/1877655