mysql 查詢出來的資料亂碼,如何解決

2021-10-25 20:00:52 字數 2932 閱讀 7837

mysql會出現中文亂碼的原因不外乎下列幾點:

1.server本身設定問題,例如還停留在latin1

2.table的語系設定問題(包含character與collation)

3.客戶端程式(例如php)的連線語系設定問題

強烈建議使用utf8,utf8可以相容世界上所有字元

找到這個地方 看看default-character-set 是不是 utf8不是的話 改為utf8即可!(以前的版本可能沒有這句話 直接加上就好了!)

把上面的編碼方式改變:

set character_set_results=gb2312; 就可以正常顯示!

關於gbk、gb2312、utf8gbk是國家標準gb2312基礎上擴容後相容gb2312的標準。gbk的文字編碼是用雙位元組來表示的,即不論中、英文本元均使用雙位元組來表示,為了區分中文,將其最高位都設定成1。gbk包含全部中文字元,是國家編碼,通用性比utf8差,不過utf8占用的資料庫比gbd大。

gbk、gb2312等與utf8之間都必須通過unicode編碼才能相互轉換:

gbk、gb2312--unicode--utf8

utf8--unicode--gbk、gb2312

對於乙個**、論壇來說,如果英文本元較多,則建議使用utf-8節省空間。不過現在很多論壇的外掛程式一般只支援gbk。

gb2312是gbk的子集,gbk是gb18030的子集

gbk是包括中日韓字元的大字符集合

如果是中文的** 推薦gb2312 gbk有時還是有點問題

為了避免所有亂碼問題,應該採用utf-8,將來要支援國際化也非常方便

utf-8可以看作是大字符集,它包含了大部分文字的編碼。

使用utf-8的乙個好處是其他地區的使用者(如香港台灣)無需安裝簡體中文支援就能正常**你的文字而不會出現亂碼。

gb2312是簡體中文的碼

gbk支援簡體中文及正體中文

big5支援正體中文

utf-8支援幾乎所有字元

首先分析亂碼的情況 

mysql中涉及的幾個字符集

character-set-server/default-character-set:伺服器字符集,預設情況下所採用的。

character-set-database:資料庫字符集。

character-set-table:資料庫表字符集。

優先順序依次增加。所以一般情況下只需要設定character-set-server,而在建立資料庫和表時不特別指定字符集,這樣統一採用character-set-server字符集。

character-set-client:客戶端的字符集。客戶端預設字符集。當客戶端向伺服器傳送請求時,請求以該字符集進行編碼。

character-set-results:結果字符集。伺服器向客戶端返回結果或者資訊時,結果以該字符集進行編碼。

在客戶端,如果沒有定義character-set-results,則採用character-set-client字符集作為預設的字符集。所以只需要設定character-set-client字符集。

要處理中文,則可以將character-set-server和character-set-client均設定為gb2312,如果要同時處理多國語言,則設定為utf8。

關於mysql的中文問題

解決亂碼的方法是,在執行sql語句之前,將mysql以下三個系統引數設定為與伺服器字符集character-set-server相同的字符集。

character_set_client:客戶端的字符集。

character_set_results:結果字符集。

character_set_connection:連線字符集。

設定這三個系統引數通過向mysql傳送語句:set names gb2312 

mysql修改查詢出來結果

需求 之前漢字轉拼音時候發覺有個字母 轉換錯了,應該是v才對,實際上 也沒錯,但是在計算機拼音中 是用v表示的,所以要把表中的 全部轉換為v 一開始覺得這個sql應該也不難,先查詢出來所有的符合條件的然後update 寫出來了發現報錯了。you can t specify target table ...

mysql刪除多表中查詢出來的資料

它文中的第三點是這樣寫的 3 從兩個表中找出相同記錄的資料並把兩個表中的資料都刪除掉 delete t1,t2 from t1 left join t2 on t1.id t2 id where t1.id 25 注意此處的delete t1,t2 from 中的t1,t2不能是別名 說t1,t2不...

MongoDB匯出查詢出來的資料集合

第一步 將查詢的結果生成一張臨時表 use 資料庫 var result db.集合名.find while result.hasnext db.temp 臨時表 insert result.next 第二步 需要認證 mongoexport h cdn或者ip d 資料庫名 port 埠號 use...