数据库选择编码方式(GBK、UTF-8)

1、毫无疑问,只要存储、处理文字,编码是必需的;网站一般绕不开文字,但数据库可以不管文字,只存些数值、日期、图片之类的。
2、GBK、UTF-8刚好是很多编码中的两种,也是两种风格(ANSI和UNICODE)中的代表
3、网站和数据库的编码可以不一致,通过中间程序能够相互转换就行;
4、对于存储汉字,UTF-8一般占3个字节,UTF-16LE占2个字节,GBK也是2个字节,存储空间是否充足也是选择时要考虑的
5、如果有存储多国语言文字的需要,那么就放弃GBK,投身unicode系列吧,UTF-8/UTF-16LE均可
6、数据库的字符编码其实也分服务器端和客户端两种,服务器端负责存储,客户端只是用来“沟通”,两者也可以不一样,只要能转换(一说“映射”)就行
 
gbk与utf8的区别和比较

GBK的文字编码是双字节来表示的,即不论中、英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。

至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。对于英文字符较多的论坛则用UTF-8节省空间。

GBK包含全部中文字符;UTF-8则包含全世界所有国家需要用到的字符。

GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)
UTF-8编码的文字可以在各国各种支持UTF8字符集的浏览器上显示。
比如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,而无需他们下载IE的中文语言支持包。 所以,对于英文比较多的论坛 ,使用GBK则每个字符占用2个字节,而使用UTF-8英文却只占一个字节。

UTF8是国际编码,它的通用性比较好,外国人也可以浏览论坛,GBK是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBK大
 
参考资料:http://www.itpub.net/forum.php?mod=viewthread&tid=1309842
                                                By:lsfhack@163.com QQ:858084865
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在 MySQL 中,如果数据库的字符集设置为 UTF-8,但表字段的字符集设置为 GBK,会导致以下影响: 1. 在存储数据时会出现乱码,因为 MySQL 会将数据从 UTF-8 编码转换为 GBK 编码,但 GBK 编码无法正确表示 UTF-8 编码的所有字符,所以会出现乱码。 2. 在查询数据时会出现问题,因为 MySQL 会将查询结果从 GBK 编码转换为 UTF-8 编码,但 GBK 编码无法正确表示 UTF-8 编码的所有字符,所以会出现问题。 建议将数据库和表字段的字符集都设置为 UTF-8,这样可以避免上述问题。 ### 回答2: 当MySQL中数据库的字符集为utf-8,但表字段中字符集为gbk时,会出现以下影响: 1. 存储问题:由于utf-8是一种多字节字符集,而gbk是一种双字节字符集,所以当在utf-8数据库中存储gbk字符时,会导致一个gbk字符占用更多的存储空间,可能引起数据浪费。 2. 编码问题:当utf-8数据库中的表字段字符集为gbk时,会导致编码不一致。当从应用程序中插入或读取数据时,可能会出现字符编码乱码或无法正常显示的情况,特别是在处理特殊字符时更容易出现问题。 3. 排序和比较问题:utf-8gbk字符集具有不同的排序规则和比较方式。如果在不同字符集之间比较和排序数据,可能导致错误的结果。 4. 查询问题:如果在utf-8数据库表中的gbk字段上进行查询,可能会导致查询结果不准确或无法正常检索到数据。 综上所述,当MySQL中数据库字符集为utf-8,但表字段中字符集为gbk时,可能会导致存储、编码、排序和查询等方面的问题。为避免这些问题,建议一致地设置字符集,即数据库和表字段应该采用相同的字符集,例如utf-8字符集。 ### 回答3: 当MySQL数据库的字符集为UTF-8(或UTF-8编码的别名)时,它可以存储包括汉字在内的各种国际字符集,并且支持多种语言的数据存储与查询。而表字段中字符集为GBK,则表示该字段中的数据只能使用GBK字符集进行存储和检索。 对于数据库字符集为UTF-8但表字段中字符集为GBK的情况,会产生以下影响: 1. 数据存储:当使用UTF-8的字符集插入数据到字段中时,MySQL会首先将UTF-8字符集转换为GBK字符集,然后再存储到表字段中。这可能导致一些特殊字符无法正确保存或显示。 2. 字符编码转换:如果从数据库中查询数据并将其显示在页面上时,数据库会将存储在GBK字符集中的数据转换为UTF-8字符集进行显示。这种字符编码转换可能会导致数据显示异常或乱码。 3. 查询效率:由于MySQL需要进行字符集转换,从UTF-8GBK或从GBKUTF-8的转换会消耗一定的计算资源和时间。在大数据量或复杂查询的情况下,这些转换可能会降低查询效率。 因此,建议在设计数据库时,数据库的字符集和表字段的字符集应保持一致,以避免字符集转换引起的问题。如果需要存储和处理多语言数据,推荐使用UTF-8字符集,它能够更好地支持各种语言和字符集。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jarry.liu

如果对您有帮助,鼓励下博主吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值