新聞中心
數(shù)據(jù)庫的字符集編碼是非常重要的一個概念,它直接決定了數(shù)據(jù)庫中數(shù)據(jù)的編碼方式和存儲格式,它的設(shè)置也會影響到數(shù)據(jù)的讀取和處理,因此,在使用數(shù)據(jù)庫時,我們需要非常注意字符集編碼的設(shè)置和使用。

那么,數(shù)據(jù)庫的字符集編碼位于哪個位置呢?在回答這個問題之前,我們首先需要了解一下什么是字符集編碼。
什么是字符集編碼?
字符集編碼是一種將字符集中的字符轉(zhuǎn)換為二進(jìn)制數(shù)的方法,通常來說,一個字符集中有很多個字符,每個字符都要對應(yīng)著一個獨特的二進(jìn)制數(shù),這就是字符集編碼。
由于計算機(jī)只能夠處理二進(jìn)制數(shù),因此,當(dāng)我們需要讓計算機(jī)識別和存儲字符時,就必須將字符轉(zhuǎn)換為二進(jìn)制數(shù),這就是字符集編碼的作用。
不同的字符集編碼方式有不同的規(guī)則和方式,例如,ASCII編碼使用7位二進(jìn)制數(shù)表示一個字符,而Unicode編碼使用16位或32位的二進(jìn)制數(shù)表示一個字符,我們在使用數(shù)據(jù)庫時,需要根據(jù)實際情況選擇不同的字符集編碼方式。
回到最初的問題,數(shù)據(jù)庫的字符集編碼位于哪個位置呢?
數(shù)據(jù)庫的字符集編碼設(shè)置通常分為兩個方面:數(shù)據(jù)庫實例的字符集編碼和數(shù)據(jù)庫表的字符集編碼。
1. 數(shù)據(jù)庫實例的字符集編碼
數(shù)據(jù)庫實例的字符集編碼是指整個數(shù)據(jù)庫中所有表的字符集編碼的默認(rèn)設(shè)置,如果在創(chuàng)建數(shù)據(jù)庫時沒有指定字符集編碼,則會使用操作系統(tǒng)的默認(rèn)編碼。
在MySQL等數(shù)據(jù)庫中,我們可以通過以下SQL語句來查看數(shù)據(jù)庫實例的字符集編碼:
“`
SHOW VARIABLES LIKE ‘character_set_database’;
“`
輸出結(jié)果可能如下所示:
“`
Variable_name Value
———————
character_set_database utf8
“`
這說明當(dāng)前的數(shù)據(jù)庫實例的字符集編碼是utf8。
我們也可以通過以下SQL語句來修改數(shù)據(jù)庫實例的字符集編碼:
“`
ALTER DATABASE dbname CHARACTER SET utf8;
“`
2. 數(shù)據(jù)庫表的字符集編碼
與數(shù)據(jù)庫實例的字符集編碼不同,數(shù)據(jù)庫表的字符集編碼是指每個表的字符集編碼設(shè)置,這個設(shè)置會影響到當(dāng)前表中所有字段的字符集編碼。
在MySQL等數(shù)據(jù)庫中,我們可以通過以下SQL語句來查看表的字符集編碼:
“`
SHOW CREATE TABLE tablename;
“`
輸出結(jié)果可能如下所示:
“`
CREATE TABLE `tablename` (
`id` int(11) NOT NULL,
`name` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
`age` int(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
“`
以上結(jié)果表明,當(dāng)前表的字符集編碼是utf8_unicode_ci。
我們也可以通過以下SQL語句來修改表的字符集編碼:
“`
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
“`
通過以上介紹,我們可以得出結(jié)論:數(shù)據(jù)庫的字符集編碼設(shè)置位于數(shù)據(jù)庫實例和表的設(shè)置中,根據(jù)實際情況設(shè)置不同的字符集編碼,能夠更好的保證數(shù)據(jù)的存儲和使用。
相關(guān)問題拓展閱讀:
- 怎么查看oracle數(shù)據(jù)庫中的的編碼格式
- 如何更改MySQL數(shù)據(jù)庫編碼為UTF-8或者GB2312?
- mysql-..修改默認(rèn)的字符集在哪里
怎么查看oracle數(shù)據(jù)庫中的的編碼格式
首先查看oracle數(shù)據(jù)庫的編碼:SQL>念卜select*fromnls_database_parameterswhereparameter=’NLS_CHARACTERSET’;修改字符集編碼(這會對數(shù)據(jù)庫的數(shù)據(jù)有直接的影響,謹(jǐn)慎操雹返作):SQL>conn/assysdbaSQL>shutdownimmediate;SQL>startupmount;SQL>ALTERSYSTEMENABLERESTRICTEDSESSION;SQL>ALTERSYSTEMSETJOB_QUEUE_PROCESSES=0;SQL>ALTERSYSTEMSETAQ_TM_PROCESSES=0;SQL>源高饑alterdatabaseopen;SQL>ALTERDATABASEcharactersetINTERNAL_USEZHS16GBK;SQL>shutdownimmediate;SQL>startup
SQL>神野selectuserenv(‘language’游冊喊)fromdual;USERENV(‘LANGUAGE’姿凳)SIMPLIFIEDCHINESE_CHINA.AL32UTF8
如何更改MySQL數(shù)據(jù)庫編碼為UTF-8或者GB2312?
mysql 創(chuàng)建 數(shù)據(jù)庫時指定編碼很重要,很多開發(fā)者都使用了默認(rèn)編碼,亂碼問題可是防不勝防。制定數(shù)據(jù)庫的編碼可以很大程度上避免倒入導(dǎo)出帶來的亂碼問題。
網(wǎng)頁數(shù)據(jù)一般采用UTF8編碼,而數(shù)據(jù)庫默認(rèn)為latin 。我們可以通過修改數(shù)據(jù)庫默認(rèn)編碼方式為UTF8來減少數(shù)據(jù)庫創(chuàng)建時的設(shè)置,也能更大限度的避免因粗心造成的亂碼問題。
我們遵循的標(biāo)準(zhǔn)是,數(shù)據(jù)庫,表,字段和頁面或文本的編碼要統(tǒng)一起來
我們可以通過命令查看數(shù)據(jù)庫當(dāng)前編碼:
mysql> SHOW VARIABLES LIKE ‘character%’;
發(fā)現(xiàn)很多對應(yīng)的都是 latin1,我們的目標(biāo)就是在下次使用此命令時latin1能被UTF8取代。
之一階段:
mysql設(shè)置編碼命令
view plain copy
SET character_set_client 灶納猛= utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;
然后 mysql> SHOW VARIABLES LIKE ‘character%’; 你可以看到全變?yōu)?nbsp;utf8
。
但是,這只是一種假象
此種方式只在當(dāng)前狀態(tài)下有效,當(dāng)重啟數(shù)據(jù)庫服務(wù)后失效。
所以如果想要不出現(xiàn)亂碼只有修改my.ini文件,
從my.ini下手(標(biāo)簽下沒有的添加,有的修改)
default-character-set=utf8
default-character-set=utf8
default-character-set=utf8
以上3個section都要加default-character-set=utf8,平時我們可能只加了mysqld一項。
然后重啟mysql,執(zhí)行
mysql> SHOW VARIABLES LIKE ‘character%’;
確保所有的Value項都是utf8即可
。
但是可惡的事情又來了,
|character_set_client | utf|
| character_set_connection | utf|
| character_set_database | utf|
| character_set_filesystem | binary 隱橋 |
| character_set_results | utf|
| character_set_server | latin茄基 |
| character_set_system | utf
注意 該配置| character_set_server | latin1 無法設(shè)置成UTF8 交互時候仍然會出現(xiàn)亂碼
。
第二階段:找到下面這東東
X:\%path%\MySQL\MySQL Server 5.0\bin\MySQLInstanceConfig.exe
重新啟動設(shè)置,將默認(rèn)編碼設(shè)置為utf8.這樣就能達(dá)到我們所要的效果了
。
mysql> SHOW VARIABLES LIKE ‘character%’;
++-+
| Variable_name| Value|
++-+
| character_set_client | utf|
| character_set_connection | utf|
| character_set_database | utf|
| character_set_filesystem | binary|
| character_set_results | utf|
| character_set_server | utf|
| character_set_system | utf|
| character_sets_dir| C:\Program Files\MySQL\MySQL Server 5.0\share\charsets\ |
++-+
mysql-..修改默認(rèn)的字符集在哪里
由于mysql默認(rèn)的字符集編唯辯歲碼為灶搭latin ,而我們一般使用的是gbk 或者 gb2312編碼
所以不改過來容易造成亂碼
我用的是mysql 5.0 安裝程序安裝的 ,安裝目錄在C:\指睜Program Files\MySQL\MySQL Server 5.0
請到這個目錄下面找到 my。ini文件
修改default-character-set=latin1 為 default-character-set=gbk
記住有兩個地方啊 都要改
最重要的一點就是修改文件前,先停止mysql服務(wù) ,等修改后再重新啟動
使用dos命令 :net stop mysql 來停止服務(wù) net start mysql 來啟動
然后在執(zhí)行你的mysql腳本 ,一切ok! 這里你可以用discuz的sql做為例子運行!
數(shù)據(jù)庫字符集編碼在哪里的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于數(shù)據(jù)庫字符集編碼在哪里,數(shù)據(jù)庫的字符集編碼位于哪個位置?,怎么查看oracle數(shù)據(jù)庫中的的編碼格式,如何更改MySQL數(shù)據(jù)庫編碼為UTF-8或者GB2312?,mysql-..修改默認(rèn)的字符集在哪里的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)網(wǎng)絡(luò)推廣網(wǎng)站建設(shè),網(wǎng)站設(shè)計,網(wǎng)站建設(shè)公司,網(wǎng)站制作,網(wǎng)頁設(shè)計,1500元定制網(wǎng)站優(yōu)化全包,先排名后付費,已為上千家服務(wù),聯(lián)系電話:13518219792
網(wǎng)站題目:數(shù)據(jù)庫的字符集編碼位于哪個位置?(數(shù)據(jù)庫字符集編碼在哪里)
分享地址:http://m.5511xx.com/article/ccdpgsh.html


咨詢
建站咨詢
