Mysql中文亂碼最佳解決方案

2021-06-22 01:28:48 字數 2304 閱讀 7514

mysql中文亂碼最佳解決方案

mysql資料庫是乙個開源的資料庫,應用非常廣泛,很多的網際網路公司都在使用它,有的還定製通過修改其源**進行定製開發,那在使用mysql的過程中,也發現了比較多的問題,那最明顯的就是mysql的中文亂碼問題,下面就來說說mysql的中文亂碼的最佳解決方案,另外我們在使用mysql的過程中,強烈建議使用utf8編碼,因為utf8可以相容世界上所有字元。

mysql會出現中文亂碼的原因主要有以下幾點:

1、server本身的編碼設定問題,例如預設是latin1。

2、table的編碼設定問題(包含character與collation)。

3、客戶端程式(例如php)的連線編碼設定問題。

一、建立資料庫及表時,統一使用utf8編碼,可以避免出現中文亂碼

1、建立資料庫

create database `db_name` character set 『utf8′ collate 『utf8_general_ci』;

2、建表

create table `tb_name` ( `id` varchar(40) not null default 」, `userid` varchar(40) not null default 」, ) engine=innodb default charset=utf8;

建庫和建表時都使用相同的編碼,基本上就不會出現中文亂碼了,但是如果已經建庫和表的話,可以通過以下方式進行查詢。

二、檢視已經建立的資料庫和表的編碼

1、檢視預設的編碼格式

mysql> show variables like 「%char%」;

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

set character_set_client=』utf8′;

set character_set_connection=』utf8′;

set character_set_results=』utf8′;

2、檢視資料庫的編碼格式

mysql> show create database db_name;

執行後可以看到建立資料庫時用的sql語句。

3、檢視表的編碼格式

mysql> show create table tb_name;

執行後可以看到建立資料表時用的sql語句。

三、修改已經建立的資料庫和表的編碼及避免插入資料庫的資料存在中文亂碼的方法

1、將資料編碼格式設定為utf-8

a、設定預設編碼為utf8:

set names utf8;

b、設定資料庫的編碼預設為utf8

alter database `db_name` default character set utf8 collate utf8_general_ci;

c、設定表tb_name預設編碼為utf8

alter table `tb_name` default character set utf8 collate utf8_general_ci;

d、匯入utf8編碼的資料到資料庫

load data local infile 『c:\\utf8.txt』 into table tb_name;

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

a、設定預設編碼為gbk

set names gbk;

b、設定資料庫的編碼預設編碼為gbk

alter database `db_name` default character set gbk collate gbk_chinese_ci;

c、設定表tb_name預設編碼為gbk

alter table `tb_name` default character set gbk collate gbk_chinese_ci;

d、匯入gbk編碼的資料到資料庫:

load data local infile 『c:\\gbk.txt』 into table tb_name;

不過有兩點需要注意一下:

1、utf8不要匯入gbk,gbk不要匯入utf8。

2、dos下不支援utf8的顯示。

四、解決請求網頁時中文亂碼的問題

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

總之,在庫及表都是utf8編碼時,如果還出現中文亂碼時,我們就從以下三個方面進行修改糾正即可。

2、在編寫connection url時,加上?useunicode=true&characterencoding=utf-8引數進行請求。

3、在網頁**中加上乙個」set names utf8″或者」set names gbk」的指令,告訴mysql連線都要使用utf8或者gbk編碼。

MYSQL中文亂碼解決方案

mysql資料庫存在著編碼問題,主要體現在資料庫裡漢字會出現亂碼,web頁面漢字顯示不正常。歸結起來只有乙個原因 會出現編碼的地方存在編碼不一致。web開發中 mysql編碼主要會出現在五個地方 1.mysql安裝的預設編碼 latin1 在mysql.ini mysql安裝根目錄下 中設定。mys...

MySQL中文亂碼解決方案集錦

整理一些mysql中文亂碼解決方案,比較實用。在使用mysql時,插入中文字元,經常會出現亂碼,中文全被用?代替。出現這種情況的原因,多是字符集不匹配造成的。在mysql中,如果使用預設的字符集,在建庫 建表時,預設使用的是latin1字符集,為iso 8859 1西歐字符集。插入中文字元時,與之不...

中文亂碼解決方案

前言 亂碼問題,一直使我們頭疼的問題。今天自己有空好好研究一番。不求太深入,只求只知皮毛。考慮不夠全面,只求給您一點幫助足矣。一 簡單介紹下pageencoding與contenttype的區別 摘自網上 pageencoding 設定jsp原始檔和響應正文中的字符集編碼。contenttype 設...