我是靠谱客的博主 要减肥铃铛,最近开发中收集的这篇文章主要介绍java和C++的byte,char,string以及涉及到的字符编码集的说明。,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第一部分 涉及到的字符编码集说明

ASCII编码

由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码。

Unicode编码

Unicode把所有语言都统一到一套编码里。Unicode标准最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。

UTF-8编码

统一成Unicode编码,乱码问题从此消失。但是,如果文本全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。
因此,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。

GBK编码

GBK全称《汉字内码扩展规范》,GBK是采用单双字节变长编码,英文使用单字节编码,完全兼容ASCII字符编码,中文部分采用双字节编码。
GBK分两段,ASCII段和中文段。ASCII段使用单字节,和ASCII编码保持一致;中文(及特殊符号)段使用双字节编码。在双字节段中,第一字节的范围是81–FE(也就是不含80和FF),第二字节的一部分领域在40–7E,其他领域在80–FE2。也就是说,在GBK编码中,中文有两个字节,首字节范围81-FE,尾字节范围40-7E。

第二部分 java和c++的字节,字符,字符串
在java里:
类型名符号类型字节大小编码方式
byte有符号1ASCII
char无符号2Unicode
String--Unicode

byte 是字节数据类型 ,是有符号型的,占1 个字节,大小范围为-128—127 。
char 是字符数据类型 ,是无符号型的,占2字节,大小范围 是0—65535 。
String是一个类,可以存储一个或者多个char。

在C++里(其中一种的情况,c++会随着机器环境改变,很烦)
类型名符号类型字节大小编码方式
char有符号(可能跟环境有关)1常规ASCII,汉字就GBK(跟环境有关)
wchar_t有符号(可能跟环境有关)2Unicode
string--常规ASCII,汉字就GBK(跟环境有关)
wstring--Unicode

你可以用string存中文串,但是一个中文会占两个字节,使用的是GBK的编码方式。用wstring,应该就是unicode的编码方式了。
你用汉字给char赋值也不会报错,但是汉字的字节会被截断,只留下一个字节,结果可能跟你要的不一样,具体还是看机器。

byte不是基础数据类型,一般是typedef unsigned char byte。
char是基础符号类型,8位,1个字节(和java的byte一样)。
wchar_t是基础符号类型,16位,2个字节(和java的char一样)。
string使用的是char类型,char组成的字符串。
wstring,使用的是wchar_t类型,w_char组成的字符串。

小结

C++的相关内容版本太杂太多,还是Java的统一的格式来比较令人舒适。

最后

以上就是要减肥铃铛为你收集整理的java和C++的byte,char,string以及涉及到的字符编码集的说明。的全部内容,希望文章能够帮你解决java和C++的byte,char,string以及涉及到的字符编码集的说明。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部