免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2213 | 回复: 9
打印 上一主题 下一主题

一直没搞清楚mysql的编码问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-06 11:28 |只看该作者 |倒序浏览
为什么有时候char(10)是按照字节算的,也就是一个英文1字节,中文2字节,总共可以存储10字节
但是有时候又是按照字算的,也就是一个英文算 一个字,中文也是1个字,总共可以存储10个字

为虾米?

论坛徽章:
0
2 [报告]
发表于 2009-03-06 14:23 |只看该作者
不知道,顶

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
3 [报告]
发表于 2009-03-06 14:49 |只看该作者
utf8 or ?

论坛徽章:
0
4 [报告]
发表于 2009-03-07 12:49 |只看该作者
gbk啊。。。

utf8的话就是按字来算的

论坛徽章:
0
5 [报告]
发表于 2009-03-07 13:31 |只看该作者
目前用的最广泛的就是UTF8了,哦觉得其实就是按照长度来计算的。

论坛徽章:
0
6 [报告]
发表于 2009-03-08 11:23 |只看该作者
如果按照字来计算的话就很难做到业务的要求了。
他们要求中文5个字,而英文的话就是10个字,也就是说要按字节计算。。。

但是用utf8的话是要字来计的。。。

论坛徽章:
0
7 [报告]
发表于 2009-03-08 20:41 |只看该作者
如果用LATIN1编码的话,是按照一个字符===一个字节。
如果用 UTF8编码的话,是按照一个字符===三个字节。


其实都是按照字符个数来算的,只是在磁盘或者内存里面存放的字节数不同,也就是占用磁盘或者内存的大小不同。

论坛徽章:
0
8 [报告]
发表于 2009-03-08 23:22 |只看该作者
不是的。。
你可以做下实验

如果是gbk的话,char(10),是可以放10个中文的,如果按字节算的话应该是5个中文
如果是utf8,则是5个中文。。

恩奇怪。

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
9 [报告]
发表于 2009-03-09 08:57 |只看该作者
原帖由 williams22 于 2009-3-8 23:22 发表
不是的。。
你可以做下实验

如果是gbk的话,char(10),是可以放10个中文的,如果按字节算的话应该是5个中文
如果是utf8,则是5个中文。。

恩奇怪。

没啥奇怪哦。是这样的啦。

论坛徽章:
0
10 [报告]
发表于 2009-03-09 09:27 |只看该作者
原帖由 yueliangdao0608 于 2009-3-8 20:41 发表
如果用LATIN1编码的话,是按照一个字符===一个字节。
如果用 UTF8编码的话,是按照一个字符===三个字节。


其实都是按照字符个数来算的,只是在磁盘或者内存里面存放的字节数不同,也就是占用磁盘或者内存 ...




版主说的比较明了,顶下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP