gb2312中的英文字母占几个字节?
byte[] bb="hello".getBytes("gb2312");
System.out.println("bb.length:::"+bb.length);
for(byte bb1:bb)
System.out.println((char)bb1);
运行代码得到如下结果:
bb.length:::5
h
e
l
l
o
我查了一些资料,都说gb2312中的所有字符都是用二个字节表示。如果是这样,那我上面的程序中bb字节数组的长度应该是10啊
可结果却是却是5.我想请问gb2312中的英文字母符号到底是用几个字节表示啊?
ASCII 英文一个字节
gb2312,gbk 中文两个字节,英文一个字节
在中文系统中ansi一般指gb2312或gbk
GB2312、GBK都属于双字节字符集 (DBCS)
Utf-8 中文三个字节,英文一个字节
Unicode 中文两个字节,英文两个字
嘿嘿,权威的如何解释GB2312不是sun公司,而是我们国家自己的标准啊,每一个大专、大学的任何学生,其计算机基础课程中都会详细讲解GB2312的啊。
byte[] bb="hello".getBytes("gb2312");
System.out.println("bb.length:::"+bb.length);
我查了一些资料,都说gb2312中的所有字符都是用二个字节表示。如果是这样,那我上面的程序中bb字节数组的长度应该是10啊
可结果却是却是5.我想请问gb2312中的英文字母符号到底是用几个字节表示啊?
答:GB2312中1区到15区共682个字符或图形符号都是全角方式下的字符。即:
若byte[] bb="hello".getBytes("gb2312");(注意是全角方式下),bb字节数组的长度就会是10了。
因此:gb2312中的所有字符都是用二个字节表示(是因为:它的字符都是全角方式)。gb2312中不会对半角方式下的字符编码的(这是ASCII码的事情),因此:在getBytes("gb2312");转换时,半角的字符都是一个字节,全角的同样字符才是两个字节。
最后让我们再用文本编辑工具ultraEdit做个小实验:
新建一个txt文件,分别以ansi、unicode、utf-8编码另存三个文件,删除原始文件,如下所示:
可以看到unicode.txt、utf-8.txt两个文件在文件内容为空时文件大小已经不是0了,这个问题待会我们再讨论。
然后我们使用ultraEdit工具打开三个文件,
在文件内容为空时几个文件的大小如上图所示。
接下来我们继续做实验,在三个文件中都输入一个英文字符[a],然后再看下每个文件大小的变化
通过对比可以发现:
(记得计算时要分别减去之前空文件所占的字符长度)
ansi_gbk英文字符占1Byte
unicode英文字符占2Byte
utf-8英文字符占1Byte
好,我们接着来测试中文字符的长度,然后再在每个文件中输入一个中文字符[我]
通过对比可以发现:
(记得计算时要分别减去之前空文件所占的字符长度)
ansi_gbk中文字符占2Byte
unicode中文字符占2Byte
utf-8中文字符占3Byte
gb2312中的英文字母占几个字节?相关推荐
- 12中的英文字母占几个字节?
byte[] bb="hello".getBytes("gb2312"); System.out.println("bb.length:::" ...
- utf-8 中的一个汉字占几个字节
utf-8 中的一个汉字占几个字节 占 2 个字节的:〇 占 3 个字节的:基本等同于 GBK,含 21000 多个汉字 占 4 个字节的:中日韩超大字符集里面的汉字,有 5 万多个 1 个 utf8 ...
- c语言中大写英文字母所占字节,Java中字符编码和字符串所占字节数 .
首 先,java中的一个char是2个字节.java采用unicode,2个字节来表示一个字符,这点与C语言中不同,C语言中采用ASCII,在大多数 系统中,一个char通常占1个字节,但是在0~12 ...
- isalnum()函数:找出str字符串中为英文字母或数字的字符
找出str字符串中为英文字母或数字的字符 (1)Linux下编程用到的函数是:int isalnum(int c) 返回值:若参数c为字母或数字,则返回TRUE:否则返回NULL(0) #includ ...
- 计算机存储单元ASCI,在计算机存储器中,存储英文字母\quot;A\quot;时,存储的是它的( ) A.输入码B.ASCII码C - 作业在线问答...
相关题目与解析 在计算机存储器中,存储英文字母"A"时,存储的是它的().A.输入码B.ASCII码C. 在计算机系统中,存储英文字母"A"时,实际存储的是它的 ...
- 1. 编写函数 cal_numbers:参数为字符串,统计并返回该字符串中的英文字母、空格、数字和其它字符的个数
1. 编写函数 cal_numbers:,参数为字符串,统计并返回该字符串中的英文字母.空格.数字和其它字符的个数,程序框架: def cal_numbers(strVal):计算 strVal 中, ...
- 批量删除所有文件名称中的英文字母
概要:我们给大家讲了很多批量重命名的方法,那么大家有没有遇到过批量删除所有文件名称中的英文字母的需求呢?这里呢就给大家详细的介绍了如何批量删除多个文件的文件名称中的所有的英文字母的方法. 我们都知道批 ...
- 统计字符串中每个英文字母的个数
题目:编程序,提示用户输入一任意长度的字符串,输出此字符串中每个英文字母的个数. 源程序代码: #include #include using namespace std; int main() { ...
- Java实验9 T4.统计文件的所有短文中包含英文字母的个数
题目要求 在文本文件bigbook.txt中包含有很长篇幅的英语短文,编写程序要求统计文件的所有短文中包含英文字母"A"的个数,并显示统计的时间. Java代码 import ja ...
最新文章
- OpenCV人脸检测与三角剖分绘制
- CEMAPI实战攻略(四)——发送短消息
- (一)Linux基础(1)
- 【HDU - 5627】Clarke and MST(最大生成树,与运算性质,最小生成树MST变形)
- fixed定位之后,如何让div上下垂直居中
- java中伪代码_问Java的伪代码怎么书写
- win10右下角网络图标不见了,而且在设置里开关是灰色,无法开启
- ukey网络连接异常_Ukey的各种操作,你知道吗?
- 环形电流计算公式_辨析!环形差模电感饱和电流的计算公式是什么?
- 开源房产中介管理系统
- pos机Project v1.1
- 网站SEO优化:遇到死链接就这样解决
- 不看绝对血亏!mysql下载安装教程win10
- Android Ping IP地址
- oracle已经创建表空间不存在,oracle表空间的创建、删除、查看、表空间不存在、及修改默认表空间详解...
- ROS: an open-source Robot Operating System
- 今年天猫双11从光棍节变成双节棍:可买4天,11月1日开买
- 毕设论文格式整理及常见问题解决
- PTA - [第四届团体程序设计天梯赛]PTA使我精神焕发
- Java集合,Collections