当前位置:首页 » 操作系统 » 数据库中文

数据库中文

发布时间: 2023-02-12 18:02:49

⑴ Mysql数据库中的中文乱码如何解决

mysql数据乱码问题可能有以下三种原因:
1.server本身设定问题,例如还停留在latin1版本;
2.table的语系设定问题(包含character与collation);
3.客户端程式(例如php,java)的连线语系设定问题;
建议使用utf8!!!!

想要避免mysql的中文乱码问题,可以尝试以下方法:
1,对于版本问题,建议去官网更新最新的版本或者比较好用的版本;

2,创建数据库,创建表时没有对字符编码进行设定会造成乱码问题:

创建数据库的时候:CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';

建表的时候 CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3,对于第三种情况,参考一下方法:
编辑linux服务器中/etc/my.cnf文件,在[mysql]段加入default_character_set=utf8;
如果只是调试遇到乱码问题:
在编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8参数;
并且在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用utf-8或者gbk。
utf8或者gbk;

⑵ 数据库里中文也是一个字节长度

不同的编码方式,所需的占用空间不同。

latin1:

1character=1byte,1汉字=2character,

也就是说一个字段定义成 varchar(200),则它可以存储100个汉字或者200个字母。

这一点要注意,尤其是当字段内容是字母和汉字组成时,尽量假设字段内容都是由汉字组成,据此来设置字段长度

utf8:

1character=3bytes, 1汉字=1character

也就是说一个字段定义成 varchar(200),则它可以存储200个汉字或者200个字母。

gbk:

1character=2bytes,1汉字=1character

也就是说一个字段定义成 varchar(200),则它可以存储200个汉字或者200个字母。

请采纳!

⑶ MySQL 中如何存中文

MySQL 中何存中文方法如下:

1、create table的时候加上:ENGINE=InnoDB DEFAULT CHARSET=gbk;

例如:

CREATE TABLE t_department (

sid varchar(32) NOT NULL,

pid varchar(32) NOT NULL,

thedata varchar(50) NOT NULL

ENGINE=InnoDB DEFAULT CHARSET=gbk;

2、打开MySQL目录下的my.ini文件,把里面所有的default-character-set选项设为GBK或者GB2312,保存后重启MySQL。

⑷ mysql数据库表里中文乱码应该选哪种编码

数据库中关于字符集的种类有很多,个人建议,数据库字符集尽量使用utf8(utf-8),以使你的数据能很顺利的实现迁移,因为utf8字符集是目前最适合于实现多种不同字符集之间的转换的字符集,尽管你在命令行工具上无法正确查看数据库中的内容,我依然强烈建议使用utf8作为默认字符集.如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询排序等问题,可以使用binary属性约束 对编程有影响的主要是客户端字符集和数据库字符集(还有一个服务器字符集,不知道干什么用的), 数据库中常用的操作就是保存数据和读取数据,在这过程中,乱不乱码和数据库字符集貌似没有什么关系。我们只要保证写入时选择的字符集和读取时选择的字符集一致,即只需保证两次操作的客户端字符集一致即可。 x0dx0a在MySQL的客户端上执行一次查询的过程一般是,在客户端的提示符后面输入一条SQL语句,回车,然后终端显示出查询的结果。这个过程中,只有终端和三个MySQL的系统变量指定了正确的字符集,才能保证我们将一个正确的SQL语句送到服务器,然后服务器返回正确的结果,并且在终端正确显示。 x0dx0a三个MySQL的系统变量是: x0dx0a1. character_set_client,终端字符集,告诉Server客户端提交的SQL语句的编码格式 x0dx0a2. character_set_connection,连接字符集,是服务器翻译SQL语句时用到的编码格式 x0dx0a3. character_set_results,返回的结果集的字符集,是服务器返回结果集之前把结果集转换成的编码格式 x0dx0a在MySQL终端通过执行命令 show variables like ‘char%’ 可以查看这几个变量的值。这三个变量通常都设定为同一种字符集,用命令set names [charset name]就可以修改这三个变量的值。一般来说,只要你设定了能够表示你的数据的字符集,你查询的结果都可以在终端正确显示。 x0dx0a举个例子,使用的表t1是utf8编码,表中的字段c1继承了这个编码,表创建如下 x0dx0amysql> create table t1 ( c1 text not null ) character set utf8; x0dx0a用的字符是汉字“范”,gbk编码为B7 B6,utf8编码为E8 8C 83 x0dx0a用下面的SQL语句插入数据 x0dx0amysql> insert into t1 values( ‘范’); x0dx0aa)如果终端设置为utf8,并且执行了 set names utf8,那么插入到数据库中的就是“范”这个字的utf8编码,这个过程中MySQL不需要做编码转换。写入数据库的内容可以通过执行 select hex( c1 ) from t1 得到数据的十六进制编码来验证。 x0dx0ax0dx0ab)如果终端设置为 utf8,并且执行了set names gbk,那么执行完这个插入操作后,写入的二进制数据是E9 91 BC,这是“汉字“锣”的utf8编码。这是因为,终端输入的“范”用的是utf8编码,而服务器以为终端发送过来的内容是gbk编码,所以在向t1表中插入的时候进行了一次gbk到utf8的转换,结果当然是错误的。 x0dx0ax0dx0ac)如果终端设置为gbk,并且执行了set names gbk,那么执行完插入操作后,写入t1的依然是“范”这个字的utf8编码。插入过程中,终端输入的是“范”的gbk编码B7 B6,服务器被告知终端发过来的SQL语句是gbk编码(由character_set_client指定),所以在插入数据前做了一次gbk到utf8的编码转换。 x0dx0ax0dx0ad)如果终端设置为gbk,并且执行了set names utf8,那么执行完插入操作后,MySQL会报出一个数据被截断的警告。实际上,输入终端的是“范”这个字符的gbk编码B7 B6,而服务器被告知客户端发过来的SQL语句是utf8编码,所以在执行过程中没有做转码,直到插入数据的时候,发现B7 B6不符合utf8的编码规则,给出了警告信息,实际插入的数据是3F 3F,也就是两个问号。 x0dx0ax0dx0a查询的时候是同样的道理,MySQL也是根据set names设定的字符集来对返回给客户端的结果集做相应的编码转换,如果转换的结果和终端显示的字符集一致,就能正确显示,如果不一致就是乱码。 x0dx0ax0dx0a结论是,只要终端的字符集和set names指定的字符集一致就可以让MySQL在处理过程中执行正确的转码并且正确地显示。 x0dx0ax0dx0a另外,如果通过程序操作MySQL数据库, 那么也需要事先执行set names命令来指定程序希望输出的字符集。比如,用程序从一个utf8编码的数据库向另外一个gbk编码的数据库进行数据迁移,在选取源数据库数据之前,需要执行set names gbk,才能取到gbk编码的数据。

⑸ oracle数据库里中文显示不出来是怎么回事

数据库编码字符集设置的不对。

数据库码就是数据库编程语言中的代码。流行的关系数据库系统都支持数据库字符集编码,也就是说在创建数据库时可以指定它自己的字符集设置,数据库的数据以指定的编码形式存储。

当应用程序访问数据时,在入口和出口处都会有字符集编码的转换。对于中文数据,数据库字符编码的设置应当保证数据的完整性。

GB2312、GBK、UTF-8等都是可选的数据库字符集编码;当然我们也可以选择。ISO8859-1(8-bit),只是我们得在用程序写数据之前先将16Bit的一个汉字或Unicode拆分成两个8-bit的字符,读数据之后也需要将两个字节合并起来,同时还要判别其中的SBCS字符。

字符编码也称字集码,是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。

常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。通常会额外使用一个扩充的比特,以便于以1个字节的方式存储。

在计算机技术发展的早期,如ASCII(1963年)和EBCDIC(1964年)这样的字符集逐渐成为标准。但这些字符集的局限很快就变得明显,于是人们开发了许多方法来扩展它们。

对于支持包括东亚CJK字符家族在内的写作系统的要求能支持更大量

⑹ mysql数据库怎么支持中文

1,创建table的时候就使用utf8编码

举个例子:

在每次创建表的时候都在最后加上 character set = utf8 就可以很好的支持中文。

2,修改已经有的table的编码
当使用默认编码创建了一个table的时候,是不能支持中文的,这时候使用如下语句对table_name进行修改:

此后再往这个table插入中文的时候,就可以正常存储和读取了,但不知道为什么之前的乱码还是不能纠正,只能新插入的数据没有问题。
[注意] 我google了一下,有些地方说这个命令也行,但是我测试以后并不行
alter table table_name charset=utf8; #这个语句并没有让table_name支持中文

⑺ 中文数据库有哪些

五个常用的中文数据库:

1、中国知网(CNKI),是中国学术期刊 (光盘版) 电子杂志社、同方知网(北京)技术有限公司共同创办的网络出版平台,是全球最大的知识门户网站。

2、超星电子图书数据库是全球最大的中文在线图书馆,图书涵盖各学科领域,为高校、科研机构的教学和工作提供了大量宝贵的参考资料,同时也是同学们学习娱乐的好助手。

北大法宝网站网页

4、北大法宝是我国最早、最专业的法律数据库,1985年创立于北京大学,目前涵盖中国法律法规、司法案例、法学期刊、英文译本、专题参考五大部分内容,数据总量100万余篇。

5、北大法意由北京大学法学院实证法务研究所研发和维护的法律数据库网站,旨在提供专业、系统的法律信息服务。目前已经构筑起全球最大的中文法律数据库。其中,案例数据库收录的案件总数量超过25万,法规数据库收录的法规文件总数量近40万部。

热点内容
手机配置高玩不了单机游戏怎么办 发布:2025-07-26 15:53:05 浏览:258
手机设置开机手势密码后如何解锁 发布:2025-07-26 15:39:14 浏览:39
迭代优化算法 发布:2025-07-26 15:25:45 浏览:949
东风本田买哪个配置好 发布:2025-07-26 15:10:01 浏览:765
plsql游标 发布:2025-07-26 15:09:51 浏览:128
android转字符串数组 发布:2025-07-26 15:08:05 浏览:269
实时产量编程 发布:2025-07-26 15:03:33 浏览:114
c语言汉诺塔算法 发布:2025-07-26 14:56:13 浏览:937
androidqq空间分享 发布:2025-07-26 14:27:27 浏览:724
为什么招生办公室登录密码错误 发布:2025-07-26 14:27:13 浏览:665