博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中文编码问题
阅读量:5269 次
发布时间:2019-06-14

本文共 657 字,大约阅读时间需要 2 分钟。

char foo='中';

 

Java语言中,中文字符所占的字节数取决于字符的
编码方式,一般情况下,
    采用ISO8859-1编码方式时,一个中文字符与一个英文字符一样只占1个字节;
    采用GB2312或GBK编码方式时,一个中文字符占2个字节;
    采用UTF-8编码方式时,一个中文字符会占3个字节。
在C++中 
在C++中,char是基础数据类型,8位,1个字节。byte不是基础数据类型,一般是typedef unsigned char byte;这样子的,也就是说,byte其实是unsigned char类型,那么也是8位,1个字节。不同的是,char可以表示的范围是-128-127,而byte可以表示的范围是0-255。 
在Java中 
在java中,char和byte都是
基础数据类型
        byte和C++中的char类型是一样的,8位,1个字节,-128-127。
        但是,
char类型,是16位,2个字节, '\u0000'-'\uFFFF'。 
为什么java里的char是2个字节? 
因为java内部都是用
unicode的,所以java其实是
支持中文变量名的,比如string 世界 = "我的世界";这样的语句是可以通过的。 
综上,java中采用GB2312或GBK编码方式时,一个中文字符占2个字节,而char是2个字节,所以是对的 

转载于:https://www.cnblogs.com/the-wang/p/8638307.html

你可能感兴趣的文章
对其他团队的项目的意见或建议
查看>>
iOS 项目的编译速度提高
查看>>
机房收费系统——报表
查看>>
How to unshelve many shelves at same time
查看>>
table中checkbox选择多行
查看>>
动态链接库
查看>>
Magento开发文档(三):Magento控制器
查看>>
使用Docker官方的Django包【转】
查看>>
SuperSocket 学习
查看>>
给培训学校讲解ORM框架的课件
查看>>
此实现不是 Windows 平台 FIPS 验证的加密算法的一部分
查看>>
性能调优攻略
查看>>
线段树模板讲解
查看>>
ie6解决png图片透明问题
查看>>
瞬间的永恒
查看>>
H3C交换机DHCP Server配置的六个方面
查看>>
docker overlay网络实现
查看>>
mysql方言不支持blob类型解决方案
查看>>
2019-8-5 考试总结
查看>>
jquery javascript 回到顶部功能
查看>>