utf-8 和gbk编码的差别
2024-10-15 22:27:48
UTF- 8:
是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。
GBK
是国家标准GB2312基础上扩容后兼容GB2312的标准。
GBK的文字编码是用双字节来表示的,即不论中、英文字符均使用双字节来表示,为了区分中文,将其最高位都设定成1。GBK包括所有中文字符,是国家编码。通用性比UTF8差,只是UTF8占用的数据库比GBD大
全部网页一般採用utf-8,由于网页中基本是大量的html代码採用utf-8比較不会占用空间
utf-8编码的数据库varchar(30) 之多能够保存10个汉字。由于一个汉字占三个字节
4.0版本号下面,varchar(20),指的是20字节,假设存放UTF8汉字时,仅仅能存6个(每一个汉字3字节) ;5.0版本号以上,varchar(20),指的是20字符。不管存放的是数字、字母还是UTF8汉字(每一个汉字3字节),都能够存放20个。最大大小是65532字节 ;varchar(20)在Mysql4中最大也只是是20个字节,可是Mysql5依据编码不同,存储大小也不同。详细有下面规则:
a) 存储限制
varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度(长度超过255时须要2个字节),因此最大长度不能超过65535。
b) 编码长度限制
字符类型若为gbk。每一个字符最多占2个字节,最大长度不能超过32766;
字符类型若为utf8,每一个字符最多占3个字节,最大长度不能超过21845。
若定义的时候超过上述限制,则varchar字段会被强行转为text类型。并产生warning。
对于c 语言
依据编译器了,不同的编译器,规定是不一样。 ANSI标准定义int是占2个字节,TC是按ANSI标准的,它的int是占2个字节的。 可是在VC里,一个int是占4个字节的
最新文章
- mybatis常见易出错
- DOM事件
- (转)R空间数据处理与可视化
- [OpenGL] 1、环境搭建及最小系统
- HttpRequest重写,解决资源战胜/链接超时/分块下载事件通知 问题。
- 安装TFS2008最终版(转载)
- PCL 点云数据操作 OpenCV遍历数据
- maven主仓库中找不到restlet的解决办法
- 【stm32】ADC的规则通道和注入通道混合使用
- oracle数据库导出并重新导入
- HDU4876ZCC loves cards(多校题)
- jmeter之jtl文件解析
- 排序算法——选择排序(js语言实现)
- mysql事务,视图,权限管理,索引,存储引擎(胖胖老师)
- Arduino入门笔记(6):温度传感器及感温杯实验
- dubbo源码研究(一)
- NetToPLCSIM 连接PLCSIM 和Kepware 联合仿真
- 【Linux】时间同步设置+防火墙设置+SELinux设置
- Java WebMail
- MVC验证