SQLserver 与mysql中的varchar()类型关于存储汉字的个数;字符与字节的区别

https://blog.csdn.net/qq_64314976/article/details/128604141

https://www.cnblogs.com/chenmingjun/p/8118083.html

今天遇到一个问题,mysql中的汉字,插入到sqlserver中报错,两边字段大小都是varchar(18)。

汉字个数超过了9个,所以在SQL server中报错我可以理解,因为1个汉字占用2个字节。

原来mysql中varchar()存储要看版本:

4.0版本以下,varchar(100) 存100字节,只能存33个汉字(一个汉字3字节);

5.0版本以上,varchar(100)存100字符,可以存100个汉字(一个汉字3字节);

UTF编码下汉字3字节;

GBK编码下汉字2字节。

 

字符与字节的区别:两者根本不是一回事,完全不同的概念。

1、计算机存储信息的最小单位,称之为位(bit),音译为比特,二进制的一个“0”或一个“1”叫一位。
2、计算机存储容量基本单位是字节(Byte),音译为拜特,8个二进制位组成1个字节。一般而言:一个标准英文字母占一个字节位置,一个标准汉字占二个字节位置。
3、计算机存储容量大小以字节数来度量,1024进位制:
  1024B=1K(千)B
  1024KB=1M(兆)B
  1024MB=1G(吉)B
  1024GB=1T(太)B
  以下还有PB、EB、ZB、YB 、NB、DB,一般人不常使用了。
4、字符是一种符号,同以上说的存储单位不是一回事。

 

posted @   yinghualeihenmei  阅读(676)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示