標籤:
第一篇文章:
原地址:
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=gbkdefault-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 NULL2》我是用的這種方法,因為我電腦上配置了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%‘;
如何將character_set_database latin1 改為 gbk(轉)