Ⅰ mysql不支持中文數據
支撐的。如果是windows上安裝的,建議數據集設置成gb2312就可以了。
Ⅱ MySQL資料庫怎麼讓表名和欄位名支持中文
只要你創建資料庫和數據表的時候指定它支持中文的字元集,也就是指定編碼為DEFAULT
CHARACTER
SET
gb2312
;這樣,希望對你有幫助
Ⅲ mysql latin1 支持中文嗎
mysqllatin1資料庫支持中文編碼。
ISO-8859-1編碼是單位元組編碼,向下兼容ASCII,其編碼范圍是0x00-0xFF,0x00-0x7F之間完全和ASCII一致,0x80-0x9F之間是控制字元,0xA0-0xFF之間是文字元號。
ISO-8859-1收錄的字元除ASCII收錄的字元外,還包括西歐語言、希臘語、泰語、阿拉伯語、希伯來語對應的文字元號。歐元符號出現的比較晚,沒有被收錄在ISO-8859-1當中。
因為ISO-8859-1編碼范圍使用了單位元組內的所有空間,在支持ISO-8859-1的系統中傳輸和存儲其他任何編碼的位元組流都不會被拋棄。
換言之,把其他任何編碼的位元組流當作ISO-8859-1編碼看待都沒有問題。這是個很重要的特性,MySQL資料庫默認編碼是Latin1就是利用了這個特性。ASCII編碼是一個7位的容器,ISO-8859-1編碼是一個8位的容器。
如果資料庫內表的字元集是latin1,那麼默認情況下中文也可被支持,latin1覆蓋了所有單位元組的值,任何其他的碼流都可以被看做latin1。
把一個gbk編碼的串寫入latin1的表,不會有任何問題,保存的是原封不動的位元組流,從表中讀取已寫入的串也不會有任何問題,且讀出的位元組流就和當初寫入的完全一致。
讀取出來以後,如果在終端下,就會理解成locale類型(如果locale系gbk,當時寫入的gbk中文串可正常回顯)
讀取出來以後,如果要寫入文件,則文件編碼方式即當時寫入的位元組流編碼,如gbk寫入的,讀出存入文件後,文件編碼也是gbk!但是如果混著寫(utf-8+gbk),那編輯器就犯蒙了,就可能會顯示會有亂碼。
純文本文件大多無文件頭,編輯器是通過位元組流自己識別編碼方式和字元集的
總結,建DB和訪問DB時如果都採用默認的latin1,那就不僅僅支持中文,而是支持任意的編碼方式。
(3)mysql資料庫支持中文擴展閱讀:
資料庫中文編碼的注意事項:
1.基於可維護的角度,雖然latin1可用,但是還是盡量換成utf8或者gb系列;
2.出現亂碼時:
SHOWVARIABLESLIKE'character%'SHOWVARIABLESLIKE'collation_%';
要保證資料庫中存的數據與資料庫編碼一致,即數據編碼與character_set_database一致;要保證通訊的字元集與資料庫的字元集一致,即character_set_client,character_set_connection與character_set_database一致;
要保證SELECT的返回與程序的編碼一致,即character_set_results與程序編碼一致;要保證程序編碼與瀏覽器、終端編碼一致
要想簡單一點,將各個字元集都設為一致的,寫入mysql的配置文件,每次用客戶端都設置一下字元集(setnames'xxx'),寫入和讀取時要記得確保位元組流的編碼是正確的。
Ⅳ mysql資料庫不支持中文!!求指點!!!
診斷步驟:
1.判斷是否是資料庫問題,在命令行輸入mysql -uusername -ppassword db_name,用insert語句插入中文,然後執行select語句查看是否顯示正常。
2.查看JSP源程序中是否加了<%@ page contentType="text/html;charset=gbk"%>
3.如果是form表單,在獲取表單數據前列印獲取的字元串,看看是否是亂碼,如果是說明在插入資料庫前已經是亂碼了
4.查看鏈接資料庫的jdbc字元串,加上useUnicode=true&characterEncoding=GBK,例子:加入資料庫名稱是test,則連接資料庫的字元為jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=GBK
基本上解決上面問題字元集問題就解決了,JSP中出現亂碼已經是很古老的問題了,有很多解決方案的,不是大問題。
Ⅳ 現在的mysql支持中文表名和欄位名嗎
mysql支持中文表名和欄位名,前提是設置好支持中文的字元集,例如gb2312
例如:
-- 創建資料庫時指定字元集gb2312
create database test1
DEFAULT CHARACTER SET gb2312;
-- 轉到剛創建的資料庫
use test1;
-- 創建中文數據表即中文欄位
create table 學生表(
id int auto_increment primary key,
sid char(10) unique not null,
姓名 varchar(50) not null,
性別 bit,
生日 date);
Ⅵ mysql資料庫從什麼版本開始不支持中文列名的呀
mysql 字元集
一. 顯示字元集
mysqladmin -uroot -proot variables | grep character
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/ |
資料庫預設使用latin1 (ISO-8859)
二. 配置字元集
1. 建庫時配置字元集
create database testxxx default charset=utf8
3. 建表時配置字元集
CREATE TABLE `t_agent` (
`ID` smallint(5) NOT NULL
) DEFAULT CHARSET=utf8 ;
4. 修改字元集
Windows平台
windows下的mysql配置文件是my.ini,一般在c:\windows\my.ini或者c:\winnt\my.ini可以直接在這個文件裡面加上
default-character-set=gbk #或gb2312,big5,utf8
然後重新啟動mysql
service mysql restart
或
/etc/init.d/mysql restart
或用其他方法重新啟動,就生效了。
[編輯]Unix平台
linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:
find / -iname my.cnf
在這個文件裡面加上
default-character-set=gbk #或gb2312,big5,utf8
然後重新啟動mysql
三. 配置排序字元集
myisamchk -r -q --set-character-set=charset
四. 啟動資料庫時修改字元集
./mysqld_safe --character-set-server=utf8 --skip-character-set-client-handshake --user=root &
Ⅶ MYsql資料庫查詢問題不支持中文字元!!!奇怪!!
字元集不統一吧? 試試mysql_query("SET NAMES 'gb2312'");呢?
Ⅷ mysql資料庫不能插入中文
你可以echo一下你的sql語句,然後return,看sql語句是不是有問題
echo $sql=".......";return;
這種形式,可以看看你的sql語句里欄位賦值是不是你表單提交的值
Ⅸ Mysql資料庫不能插入中文怎麼回事兒啊
Mysql資料庫不能插入中文,一插入就報錯,是代碼輸入錯誤造成的,解決方法如下:
1、首先使用insert語句,把數據插入到資料庫表裡。
Ⅹ mysql資料庫裡面,插不了中文,求解
1、使用show variables like 'character_set_%'; 查看你的mysql的字元集+--------------------------+----------------------------+
| Variable_name |Value |
+--------------------------+----------------------------+
| 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 |
| character_sets_dir |/usr/share/mysql/charsets/ |
+--------------------------+----------------------------+如果裡面有很多是Latin,那麼你需要修改它的編碼了,一般可以通過setcharacter_set**來修改,不過我這樣修改,重新打開命令窗口再查看時,字元集又恢復成原來的樣子了,超級郁悶。這里通過修改其配置文件的方式就可以了(Windows安裝目錄下的my.ini),修改為:[mysql]default-character-set=utf82、這時再插入中文時,會報data toolong的錯誤,此時需要修改my.ini中的sql-mod,把STRICT_TRANS_TABLES,去掉就可以了。3、通過status命令查看mysql Ver 14.12 Distrib 5.0.45, for Win32 (ia32)Connection id: 8
Current database: test
Current user:root@localhost
SSL: Not in use
Using delimiter: ;
Server version: 5.0.45-community-nt MySQL Community Edition(GPL)
Protocol version: 10
Connection: localhost via TCP/IP
Server characterset: latin1
Db characterset: latin1
Client characterset: gbk
Conn. characterset: gbk
TCP port: 3306
Uptime: 7 hours 39 min 19 sec
Threads: 2 Questions: 174 Slow queries: 0 Opens: 57 Flush tables: 1Open ta
bles: 1 Queries per second avg: 0.006這里Server characterset還是Latin1,所以還需要修改它的字元集,alter table userscharacter set GBK;然後通過show create table users查看錶結構:| users | CREATE TABLE `users` (
`userid` int(11) default NULL,
`username` char(20) character set latin1 default NULL
) ENGINE=InnoDB DEFAULT CHARSET=gbk |
+-------+-----------------------------------------------------------------------4、再試試看能不能插入中文,如果還不行的話,設置表結構中需要保存中文的欄位的字元集,alter table users modify username char(20) character setgbk;5、繼續嘗試,如果還是不行,則使用set names gbk,現在應該可以了!