MySQL資料庫 完美解決中文資料亂碼

2022-04-08 19:40:09 字數 1592 閱讀 4574

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

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

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

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

強烈建議使用utf8!!!!

utf8可以相容世界上所有字元!!!!

一、避免建立資料庫及表出現中文亂碼和檢視編碼方法

1、建立資料庫的時候:

[sql] view plain copy

2、建表的時候 

[sql] view plain copy  

這3個設定好了,基本就不會出問題了,即建庫和建表時都使用相同的編碼格式。

但是如果你已經建了庫和表可以通過以下方式進行查詢。

1.檢視預設的編碼格式:

[sql] view plain copy

注:以前2個來確定,可以使用set names utf8,set names gbk設定預設的編碼格式;

執行set names utf8的效果等同於同時設定如下:

[sql] view plain copy  

2.檢視test資料庫的編碼格式:

[sql] view plain copy

3.檢視yjdb資料表的編碼格式:

[sql] view plain copy  

二、避免匯入資料有中文亂碼的問題

1:將資料編碼格式儲存為utf-8

設定預設編碼為utf8:

set names utf8;

設定資料庫db_name預設為utf8:

[sql] view plain copy

設定表tb_name預設編碼為utf8:

[sql] view plain copy

匯入:[sql] view plain copy

2:將資料編碼格式儲存為ansi(即gbk或gb2312)

設定預設編碼為gbk:

set names gbk;

設定資料庫db_name預設編碼為gbk:

[sql] view plain copy

設定表tb_name預設編碼為gbk:

[sql] view plain copy

匯入:[sql] view plain copy

注:1.utf8不要匯入gbk,gbk不要匯入utf8;

2.dos下不支援utf8的顯示;

三、解決網頁中亂碼的問題

將**編碼設為 utf-8,這樣可以相容世界上所有字元。

如果**已經運作了好久,已有很多舊資料,不能再更改簡體中文的設定,那麼建議將頁面的編碼設為 gbk, gbk與gb2312的區別就在於:gbk能比gb2312顯示更多的字元,要顯示簡體碼的繁體字,就只能用gbk。

1.編輯/etc/my.cnf ,在[mysql]段加入default_character_set=utf8;

2.在編寫connection url時,加上?useunicode=true&characterencoding=utf-8參;

3.在網頁**中加上乙個"set names utf8"或者"set names gbk"的指令,告訴mysql連線內容都要使用utf8或者gbk;

解決MySQL資料庫中文模糊檢索問題

在 mysql下,在進行中文模糊檢索時,經常會返回一些與之不相關的記錄,如查詢 a 時,返回的可能有中文字元,卻沒有a字元存在。本人以前也曾遇到過類似問題,經詳細閱讀mysql的manual,發現可以有一種方法很方便的解決並得到滿意的結果。希望通過 標題 對新聞庫進行檢索,關鍵字可能包含是中英文,如...

mySQL資料庫中文亂碼解決方法

mysql資料庫字符集設定 1 進入mysql命令列 2 使用命令 set names gbk mysql資料庫匯出匯入加字符集引數 1 進入mysql資料庫安裝目錄的bin資料夾下 2 使用命令 mysqldump u root p recordstation c recordstation.sq...

mysql資料庫中文亂碼解決辦法

以下所有的操作均為mysql5.5環境下 一 建立乙個資料庫,預設字符集是latin1 mysql create database dbatest mysql show create database dbatest g mysql show create database dbatest g 1....