MySQL的編碼字符集問題

2021-07-09 07:04:44 字數 978 閱讀 6209

在專案裡遇到了插入的中文字元變成亂碼的問題,修改了mysql的字符集相關變數卻沒有解決問題,上網找了下,嘗試了各種方法最終解決。

修改global的variable:set character_set_database=utf8,卻不能解決某個資料庫建好之後,新建的表的character_set_database還是latin1,導致插入的中文字元亂碼。

通過修改字符集解決:

alter database dbname character set utf8;

總結下mysql字符集編碼問題的解決方案:

1.修改配置檔案,重啟mysql

linux下vi /etc/my.cnf

windows下修改my.ini

增加一行(或修改已有行):

default-character-set=utf8;

2.建立資料庫時指定字符集

create database dbname character set utf8;

3.修改字符集

修改已有資料庫的字符集:

alter database dbname default character set utf8;

alter table tablename default character set gbk collate gbk_chinese_ci;

alter table `test` change `dd` varchar(45) character set gbk collate gbk_chinese_ci;

4.修改字符集相關變數

show (global) variables like '%set%';

set names utf8;

相當於下面3條語句:

set character-set-client=utf8;

set character-set-results=utf8;

set character-set-conection=utf8;

編碼字符集

gb2312 全稱中國標準第兩千三百一十二條,其中包含亞裔字符集 南韓文字 缺點不包括正體中文,但是台灣還在使用正體中文,於是就有了 gbk gbk 全稱中國標準第兩千三百一十二條擴充套件版本,就包含正體中文 unicode 全稱萬國碼,各個國家的文字都有 utf 8 最通用的,unicode的公升...

編碼字符集與字符集編碼的區別

無論歷史上的ucs還是現如今的unicode,兩者指的都是編碼字符集,而不是字符集編碼。乙個抽象字符集其實就是指字元的集合,例如所有的英文本母是乙個抽象字符集,所有的漢字是乙個抽象字符集,在給乙個抽象字元集合中的每個字元都分配乙個 整數編號之後 注意這個整數並沒有要求大小 這個字符集就有了順序,就成...

mysql 設定 編碼字符集 過程

本文從關閉資料庫開始講解如何設定mysql的編碼字符集,解決亂碼問題 關於在從客戶端到資料庫伺服器之間編碼轉換的過程可以參考這篇 設定字符集流程 1.關閉資料庫 service mysqld stop 2.修改my.cnf檔案設定預設字符集 linux該檔案一般在 etc my.cnf 沒有的話手動...