mysql数据库一个汉字到底占几个字节

mysql数据库一个汉字到底占几个字节,第1张

一个汉字占多少长度与编码有关:

若采用UTF-8编码,则一个汉字=3个字节。

若采用GBK编码,则一个汉字=2个字节。

项目中oracle10g数据库表字段为varchar(n)类型,存英文很简单,只要字母个数不大于n即可。但是对于汉字,按照同样的方法就不行了。因为对于汉字不同的字符集,在数据库占用的字节是不一样的。

比如varchar(10)类型的字段,UTF-8的汉字,只能存3个,gbk字符集的汉字却能存5个。所以在程序中根据表字段varchar的大小,保存或更新时作出必要的校验否则后台会报错。

对于一个网站、论坛来说,如果英文字符较多,则建议使用UTF-8节省空间。不过现在很多论坛的插件一般只支持GBK。

GB2312是GBK的子集,GBK是GB18030的子集

GBK是包括中日韩字符的大字符集合

扩展资料

字符最终是以二进制形式存储在磁盘的,这也是为什么要有字符编码的原因,因为计算机最终都要以二进制形式存储,那么编码规则就是用什么样的二进制来代表这个字符。

例如,ASCII码表中,01000011这个二进制对应的十进制是67,它代表的就是英语字母C。准确概述来说,字符编码方式是用一个或多个字节的二进制形式表示字符集中的一个字符。

每种字符集都有自己特有的编码方式,因此同一个字符,在不同字符集的编码方式下,可能会产生不同的二进制形式。

另外,字符集合只是指定了一个集合中有哪些字符,而字符编码,是为这个集合中所有字符定义相关编号,而字符集(注意与字符集合的区别)是字符和集合与编码规则的混合体,这也是有时候编码方案代表字符集的原因。

更改数据库安装时的字符编码。打开mysql安装目录,找到my.ini文件,通过使用记事本的方式打开,将这里面的default-character-set=latin1修改成gbk,注意这里面有两处需要修改。

修改数据库实例中的编码,打开data文件夹,找到对应的数据库实例,修改里面的db.opt文件,将字符编码改成gbk如图所示。

修改数据库实例编码还可以通过navicat for mysql客户端直接进行更改,在数据库实例上右键--属性--选择字符编码。

重启数据库。通过cmd命令对数据库进行重启生效。

更改编码中连接串的字符编码,在连接串后面添加&useUnicode=true&characterEncoding=gbk。

测试数据是否正常。再次重新插入数据库数据,就可以看到汉字不会乱码。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9994378.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存