如何將character_set_database latin1 改為 gbk(轉)


第一篇文章:

原地址:

Linux服務器下文件名為 my.cnf

Windows 下文件名為 my.ini

問題:通過sql語言向數據庫中添加中文的數據的時候,查詢是顯示的是亂碼。

原因:當初安裝數據庫是默認的編碼是latin1編碼(Latin1是ISO-8859-1的別名,有些環境下寫作Latin-1)

解決: 我是講latin1編碼改為gbk   ,,,如過你不是,我相信也差不多按照這寫步驟。

①首先進入到mysql暗轉目錄下,記事本打開my.ini文件將

default-character-set=latin1    改為    default-character-set=gbk

default-character-set=latin1     改為   default-character-set=gbk    注意有兩行

②但是修改了這兩行還不夠,因為你的數據庫編碼依然還是latin1,你可以doc進入mysql命令下,運行show variables like 'character%'; 顯示的內容是:

+--------------------------+-----------------------------------+
| Variable_name            | Value                             |
+--------------------------+-----------------------------------+
| character_set_client     | gbk                               |
| character_set_connection | gbk                               |
| character_set_database   | latin1                            |         //此處顯示數據庫依然是latin1編碼
| character_set_filesystem | binary                            |
| character_set_results    | gbk                               |
| character_set_server     | gbk                               |
| character_set_system     | utf8                              |            //此處是系統默認的
| character_sets_dir       | E:\phpStudy\MySQL\share\charsets\ |
+--------------------------+-----------------------------------+


③修改默認編碼有兩種方法 

1》在創建數據庫時指定字符集create database yourDB CHARACTER SET gbk;

 如果是MYSQL數據庫編碼不正確: 可以在MYSQL執行如下命令: ALTER DATABASE `test` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci
 修改MYSQL表的編碼:ALTER TABLE `category` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci
 修改字段的編碼:ALTER TABLE `test` CHANGE `dd`  VARCHAR( 45 ) CHARACTER SET gbk COLLATE gbk_chinese_ci NOT NULL

2》我是用的這種方法,因為我電腦上配置了php環境所以可以用這種方法:即運行一個php文件通過那個修改數據編碼。你通過網頁瀏覽該文件時填寫一些數據就能修改了     文件下載地址http://dl.vmall.com/c08ge26aop                   文件直接解壓到放php文件目錄通過瀏覽器打開就行

通過上面這些步驟差不多就能顯示出下面的內容了

在運行命令show variables like 'character%';   


+--------------------------+-----------------------------------+
| Variable_name            | Value                             |
+--------------------------+-----------------------------------+
| character_set_client     | gbk                               |
| character_set_connection | gbk                               |
| character_set_database   | gbk                               |
| character_set_filesystem | binary                            |
| character_set_results    | gbk                               |
| character_set_server     | gbk                               |
| character_set_system     | utf8                              |
| character_sets_dir       | E:\phpStudy\MySQL\share\charsets\ |
+--------------------------+-----------------------------------+

④萬一還是不行。。。以為我也是一路試着來的,所以有些步驟可能我認為沒起作用但卻可能起了作用的有

1》mysql> set names gbk;

Query OK, 0 rows affected (0.00 sec)
它相當於下面的三句指令:
SET character_set_client = gbk;
SET character_set_results = gbk;
SET character_set_connection = gbk;
因此,這個方法也可以解決所有字符編碼設置為gbk,而控制台顯示中文亂碼的問題。

⑤當然你也可以試試SET character_set_client = gbk;  即set這種命令來修改各個變量,但當時我不知道這個,也沒試過。如果你上面的方法不行可以試試這個。

 

 

第二篇文章:

原地址:http://www.cr173.com/html/50452_1.html

mysql的默認編碼是拉丁,我每次JSP制作網頁用insert語句插入數據庫時漢字都會顯示成問號,安裝mysql后,啟動服務並登陸,使用show variables命令可查看mysql數據庫的默認編碼:

由上圖可見database和server的字符集使用了latin1編碼方式,不支持中文,即存儲中文時會出現亂碼。以下是命令行修改為utf-8編碼的過程,以支持中文。

Linux下修改:

(1)關閉mysql服務

[plain] view plaincopy

service mysql stop  

(2)修改 /etc/mysql/my.cnf  (默認的安裝路徑)

[plain] view plaincopy

vim /etc/mysql/my.cnf  

打開my.cnf后,在文件內的[mysqld]下增加如下兩行設置:

[plain] view plaincopy

character_set_server=utf8  

init_connect='SET NAMES utf8'  (親測,不加也沒關系)

(具體如截圖所示):

保存退出。

(3) 重新啟動mysql服務

[plain] view plaincopy

service mysql start  

至此,完成修改默認編碼,登陸mysql后重新使用show variable like '%character%'獲得的輸出效果如下:

具體操作和輸出情況如下:

 

 

Windows下修改:

 

解決方法:打開mysql安裝目錄:C:\Program Files\MySQL\Mysql server 5.5
打開文件my.ini配置文件,找到  default-character-set=latin1   並改為:
default-character-set=gbk,找到   character-set-server=latin1  並改為:
character-set-server=gbk,修改完之后保存。
最后:我的電腦右擊 “管理”進入之后選擇“服務和應用程序”下的“服務”
找到“mysql”之后右擊選擇“重新啟動”。
把jsp頁面中的<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>改為<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>即可

Mysql 字符解決:
1,安裝選擇utf8 編碼
2,使用SHOW VARIABLES LIKE ‘character_set_%’;
顯示:
character_set_client     | latin1
character_set_connection | latin1
character_set_database   | latin1
character_set_filesystem | binary
character_set_results    | latin1
character_set_server     | latin1
character_set_system     | utf8
修改my.ini中[mysqld]下的default-character-set為utf8
顯示
| character_set_client     | latin1
| character_set_connection | latin1
| character_set_database   | utf8
| character_set_filesystem | binary
| character_set_results    | latin1
| character_set_server     | utf8
| character_set_system     | utf8
說明此項設置The default character set that will be used when a new schema or table is
# created and no character set is defined(數據庫服務器中某個庫使用的字符集設定,如果建庫時沒有指明,將使用服務器安裝時指定的字符集設置。)
但是服務端與客戶端的鏈接字符集仍然沒有修改
修改[mysql]default-character-set=utf8
顯示:
| character_set_client     | utf8
| character_set_connection | utf8
| character_set_database   | utf8
| character_set_filesystem | binary
| character_set_results    | utf8
| character_set_server     | utf8
| character_set_system     | utf8
客戶端和服務端都統一了 ok

 2: 修改你的數據庫的字符編碼:進入Mysql數據庫,通過命令修改你的數據庫字符編碼: ALTER DATABASE `databaseName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci  (修改后需要重啟Mysql數據庫)
3: 如果你的表以及表里的字段使用了不正確的字符編碼,同樣需要修正過來:命令:
 修改表的編碼: ALTER TABLE `tableName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
 修改字段的編碼: ALTER TABLE `tableName` CHANGE `dd` `dd` VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL 

主要介紹MySQL編碼為utf8設置方法:

一、編輯MySql的配置文件

vim /etc/my.cnf

在 [mysqld] 標簽下加上三行

default-character-set = utf8

character_set_server = utf8

在 [mysql] 標簽下加上一行

default-character-set = utf8

在 [mysql.server]標簽下加上一行

default-character-set = utf8

在 [mysqld_safe]標簽下加上一行

default-character-set = utf8

在 [client]標簽下加上一行

default-character-set = utf8

二、重新啟動MySql服務即可

三、查看mysql字符集 (默認情況下,mysql的字符集是latin1)

1. 啟動mysql后,以root登錄mysql

2. 輸入命令

show variables like 'character%';


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM