1. 程式人生 > >徹底解決MySQL中文亂碼問題

徹底解決MySQL中文亂碼問題

MySQL會出現中文亂碼的原因不外乎下列幾點:
1.server本身設定問題,例如還停留在latin1
2.table的語系設定問題(包含character與collation)
3.客戶端程式(例如php)的連線語系設定問題
強烈建議使用utf8!!!!
utf8可以相容世界上所有字元!!!!

Linux下Mysql插入中文顯示亂碼解決方案

mysql -uroot -p 回車輸入密碼

進入mysql檢視狀態如下:

mysql不能插入中文

預設的是客戶端和伺服器都用了latin1,所以會亂碼。

解決方案:

mysql>user mydb;

mysql>alter database mydb  character set utf8;!

另一種方法是直接修改預設的Mysql配置檔案

在debian環境下,徹底解決mysql無法插入中文和中文亂碼的辦法

上面提到了用臨時方法更改資料庫的字符集設定,顯示中文,但是後來發現在有的系統下並不能成功,比如我用的debian 7.0,找了好久終於找到一個適合debian系統的解決方案,debian 7.0下測試成功,其他諸如修改client和mysql加入default-character-set=utf8的方法之類的,只適用與5.5以前的系統!

終極決絕方案,一勞永逸:

debian下mysql的字串修改為utf8(參考:rainysia的專欄)

一、進入mysql(mysql -uroot -p),檢視當前資料庫字符集(status;)

二、檢視當前系統版本(lsb_release -a)

Mysql不能插入中文

三、#vim /etc/mysql/my.cnf 。(5.5以前系統)在【client】下面加入 default-character-set=utf8

在【mysqld】下面加入default-character-set=utf8

Notice:注意 如果修改後不能啟動報錯試試把default-character-set=utf8改為character_set_server=utf8,僅僅加入到mysqld下面的.client就不需要加了

四、#vim /etc/mysql/my.cnf 。(5.5以後系統)如下修改:

[client]
default-character-set=utf8

[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

五、重啟mysql(/etc/init.d/mysql stop   /etc/init.d/mysql  start)

六、修成成功,進入mysql檢視字符集(mysql>show variables like ‘character_set_%’;)

Mysql無法插入中文

一、避免建立資料庫及表出現中文亂碼和檢視編碼方法
1、建立資料庫的時候:CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
2、建表的時候 CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

這3個設定好了,基本就不會出問題了,即建庫和建表時都使用相同的編碼格式。
但是如果你已經建了庫和表可以通過以下方式進行查詢。
1.檢視預設的編碼格式:
mysql> show variables like "%char%";
+--------------------------+---------------+
| Variable_name | Value |
+--------------------------+---------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
+--------------------------+-------------+
注:以前2個來確定,可以使用set names utf8,set names gbk設定預設的編碼格式;

執行SET NAMES utf8的效果等同於同時設定如下:
SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_results='utf8';

2.檢視test資料庫的編碼格式:
mysql> show create database test;
+------------+------------------------------------------------------------------------------------------------+
| Database | Create Database |
+------------+------------------------------------------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET gbk */ |
+------------+------------------------------------------------------------------------------------------------+

3.檢視yjdb資料庫的編碼格式:
mysql> show create table yjdb;
| yjdb | CREATE TABLE `yjdb` (
`sn` int(5) NOT NULL AUTO_INCREMENT,
`type` varchar(10) NOT NULL,
`brc` varchar(6) NOT NULL,
`teller` int(6) NOT NULL,
`telname` varchar(10) NOT NULL,
`date` int(10) NOT NULL,
`count` int(6) NOT NULL,
`back` int(10) NOT NULL,
PRIMARY KEY (`sn`),
UNIQUE KEY `sn` (`sn`),
UNIQUE KEY `sn_2` (`sn`)
) ENGINE=MyISAM AUTO_INCREMENT=1826 DEFAULT CHARSET=gbk ROW_FORMAT=DYNAMIC |

二、避免匯入資料有中文亂碼的問題
1:將資料編碼格式儲存為utf-8
設定預設編碼為utf8:
set names utf8;
設定資料庫db_name預設為utf8:
ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
設定表tb_name預設編碼為utf8:
ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
匯入:
LOAD DATA LOCAL INFILE 'C:\\utf8.txt' INTO TABLE yjdb;
2:將資料編碼格式儲存為ansi(即GBK或GB2312)
設定預設編碼為gbk:
set names gbk;
設定資料庫db_name預設編碼為gbk:
ALTER DATABASE `db_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
設定表tb_name預設編碼為gbk:
ALTER TABLE `tb_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
匯入:
LOAD DATA LOCAL INFILE 'C:\\gbk.txt' INTO TABLE yjdb;

注: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中文亂碼

在服務器 user cli varchar oba test roo 插入 rom mysql是我們項目中非常常用的數據型數據庫。但是因為我們需要在數據庫保存中文字符,所以經常遇到數據庫亂碼情況。下面就來介紹一下如何徹底解決數據庫中文亂碼情況。 1、中文亂碼

徹底解決MySQL中文亂碼問題

MySQL會出現中文亂碼的原因不外乎下列幾點: 1.server本身設定問題,例如還停留在latin1 2.table的語系設定問題(包含character與collation) 3.客戶端程式(例如php)的連線語系設定問題 強烈建議使用utf8!!!! utf8可以相

徹底解決mysql中文亂碼的辦法

原文連結:http://www.pc6.com/infoview/Article_63586.html MySQL會出現中文亂碼的原因不外乎下列幾點: 1.server本身設定問題,例如還停留在latin1 2.table的語系設定問題(包含character與colla

mysql是我們專案中非常常用的資料型資料庫。但是因為我們需要在資料庫儲存中文字元,所以經常遇到資料庫亂碼情況。下面就來介紹一下如何徹底解決資料庫中文亂碼情況。

mysql是我們專案中非常常用的資料型資料庫。但是因為我們需要在資料庫儲存中文字元,所以經常遇到資料庫亂碼情況。下面就來介紹一下如何徹底解決資料庫中文亂碼情況。 1、中文亂碼 1.1、中文亂碼 create table user(name varchar(11)); # 建立user表

徹底解決Springmvc中文亂碼問題

效果 line eight 攔截器 -s 文字 true hit filter 如果使用是網頁地址get方式請求傳輸中文字符的話,springmvc會出現亂碼的問題,這時候需要在web。xml中配字符攔截器(ps:僅對post請求有效果) -----------------

徹底解決springMVC中文亂碼

exceptio bubuko 頁面 onf 所有 character n) 進行 strong 一、頁面編碼 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <meta

MySQL字符集 GBK、GB2312、UTF8區別 解決MYSQL中文亂碼問題

MySQL字符集 GBK、GB2312、UTF8區別 解決MYSQL中文亂碼問題   MySQL中涉及的幾個字符集 character-set-server/default-character-set:伺服器字符集,預設情況下所採用的。 character-set-database

徹底解決matplotlib中文亂碼問題

1.環境檢視a.系統版本檢視 [[email protected] ~]$ cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)  b.系統中文字型檢視 [[email protected

解決mySql中文亂碼以及Eclipse插入中文出現亂碼

cmd --->命令列 mySql查詢資料庫出現中文亂碼:   1、登入資料庫,mysql -u root -p  ,輸入密碼,登入 2、查詢mysql編碼 : show variables like "%char%";  3、正確編碼

解決mysql中文亂碼問題

在寫Java web的時候發現控制檯打印出來是中文 但資料庫中卻是一堆問號 1.開啟mysql安裝目錄中的my.ini(如果沒有自行使用my-huge.ini或者my-large.ini或者my-medium.ini或者my-small.ini複製一

J2EE 解決MySQL中文亂碼問題

剛才遇到一個很蛋疼德問題,就在java執行executeupdate()後在table中看到中文全變亂碼,然而網上大多數部落格都是在mysql自身去找問題,我也跟著做了許多無功,蛋疼的博主。後來終於 發現了某博主在url 後指定了字元編碼,結果一試就靈。現在記

怎樣解決Mysql中文亂碼問題

這個問題已經是第n次遇到了,每次mysql安裝到一個新的電腦上,就會反覆出現這個問題,現在記錄起來~~ 【解決問題】 一般就是從my.ini著手,設定如下: [client] default-character-set=utf8 [mysql] default-chara

徹底解決Git中文亂碼問題

現在隨著Githut和SNS的流行,Social Code也像Facebook在世界中流行一樣,在程式猿中流行開來。而且有猶如星星之火,在程式猿中燎原開來。有Linus這樣的大牛作為發明人,有Linux Kernel這樣的龐大應用作為“小白鼠”做測試,再有Github這樣

MySQL字符集 GBK、GB2312、UTF8區別 解決 MYSQL中文亂碼問題

/****************java、jsp中設定編碼***************************/ 首先說在java裡那些地方能夠設定編碼 下面兩種設定編碼格式方法適用於jsp頁面(*.jsp) <%@ page language="java" import="java.util.*"

wamp:解決mysql中文亂碼問題

需要兩步:首先:在phpmyadmin中:新建一個數據庫,修改資料庫更改“整理、更改MySQL 連線校對”是gbk_chinese_ci”其次:為mysql.ini增加 一行:default-character-set=utf8重新啟動wamp完成。

解決MySQL中文亂碼

page 範圍 art rac 插入 ont edit 一個 簡體 環境:win10, Server version: 5.7.25 MySQL Community Server (GPL)1. 中文亂碼無法插入中文字符,顯示該條錯誤2. 查看數據庫編碼這裏需要把這兩項修

mysql中文亂碼徹底解決

1.在mysql的配置檔案my.ini中新增: [mysqld] port = 3306 socket = /tmp/mysql.sock character-set-server=utf8

mysql中文亂碼解決方式

方式 sqlserver 查看 fadein tin 方案 tab views 編碼 近期項目使用到mysql。卻突然出現了中文亂碼問題。嘗試了多種方案,最終解決亂碼問題,總結一下解決方式,給遇到同樣問題的人一點參考。 中文亂碼的原因 1.安裝m

解決jdbc MySQL中文亂碼問題

spa style mysql安裝 亂碼問題 img images mysql ges 安裝 進MySQL安裝目錄,打開my.ini        這兩個地方改成gbk               重啟服務解決jdbc MySQL中文亂碼問題

jsp和servlet操作mysql中文亂碼問題的解決辦法

inux com 過濾 國際化 出現 conf onf my.cnf pos 轉載:http://www.jb51.net/article/49253.htm 首先看是從什麽地方開始出現的亂碼,只要統一編碼,就不會出現亂碼,下面以uft-8(個人認為最好)為例,詳細說明