mysql的默認(rèn)編碼是拉丁,我每次JSP制作網(wǎng)頁用insert語句插入數(shù)據(jù)庫時(shí)漢字都會(huì)顯示成問號(hào),安裝mysql后,啟動(dòng)服務(wù)并登陸,使用show variables命令可查看mysql數(shù)據(jù)庫的默認(rèn)編碼:
由上圖可見database和server的字符集使用了latin1編碼方式,不支持中文,即存儲(chǔ)中文時(shí)會(huì)出現(xiàn)亂碼。以下是命令行修改為utf-8編碼的過程,以支持中文。
(1)關(guān)閉mysql服務(wù)
[plain] view plaincopy
service mysql stop
(2)修改 /etc/mysql/my.cnf (默認(rèn)的安裝路徑)
[plain] view plaincopy
vim /etc/mysql/my.cnf
打開my.cnf后,在文件內(nèi)的[mysqld]下增加如下兩行設(shè)置:
[plain] view plaincopy
character_set_server=utf8
init_connect='SET NAMES utf8'
(具體如截圖所示):
保存退出。
(3) 重新啟動(dòng)mysql服務(wù)
[plain] view plaincopy
service mysql start
至此,完成修改默認(rèn)編碼,登陸mysql后重新使用show variable like '%character%'獲得的輸出效果如下:
注
具體操作和輸出情況如下:
解決方法:打開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,修改完之后保存。
最后:我的電腦右擊 “管理”進(jìn)入之后選擇“服務(wù)和應(yīng)用程序”下的“服務(wù)”
找到“mysql”之后右擊選擇“重新啟動(dòng)”。
把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
說明此項(xiàng)設(shè)置The default character set that will be used when a new schema or table is
# created and no character set is defined(數(shù)據(jù)庫服務(wù)器中某個(gè)庫使用的字符集設(shè)定,如果建庫時(shí)沒有指明,將使用服務(wù)器安裝時(shí)指定的字符集設(shè)置。)
但是服務(wù)端與客戶端的鏈接字符集仍然沒有修改
修改[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
客戶端和服務(wù)端都統(tǒng)一了 ok
2: 修改你的數(shù)據(jù)庫的字符編碼:進(jìn)入Mysql數(shù)據(jù)庫,通過命令修改你的數(shù)據(jù)庫字符編碼: ALTER DATABASE `databaseName` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci (修改后需要重啟Mysql數(shù)據(jù)庫)
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設(shè)置方法:
一、編輯MySql的配置文件
vim /etc/my.cnf
在 [mysqld] 標(biāo)簽下加上三行
default-character-set = utf8
character_set_server = utf8
在 [mysql] 標(biāo)簽下加上一行
default-character-set = utf8
在 [mysql.server]標(biāo)簽下加上一行
default-character-set = utf8
在 [mysqld_safe]標(biāo)簽下加上一行
default-character-set = utf8
在 [client]標(biāo)簽下加上一行
default-character-set = utf8
二、重新啟動(dòng)MySql服務(wù)即可
三、查看mysql字符集 (默認(rèn)情況下,mysql的字符集是latin1)
1. 啟動(dòng)mysql后,以root登錄mysql
2. 輸入命令
show variables like 'character%';