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、字符是一种符号,同以上说的存储单位不是一回事。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了