Ⅰ 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,现在应该可以了!