Unicode,以及byte和char的关系

原创 2016年10月26日 08:55:23

Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode Character Table(入口在这里) 包含常见语言的字符和可打印的符号字符,字符提供了 HTML 代码,名称/描述和相应的打印符号。

Unicode应用

Unicode-A

可以这么理解:

字符 十六进制 十进制
‘A’ 41 65

注意:这些都可以转化为’A’
‘\u0041’
(char)65
(char)0x41
另:
“\u0041”==”A”
“\u5F20\u4E09”==”张三”

char,字节(byte)的关系

char

  • char data type is a single 16-bit Unicode character
  • Minimum value is ‘\u0000’ (or 0)
  • Maximum value is ‘\uffff’ (or 65,535 inclusive)
  • Char data type is used to store any character
  • Example: char letterA = ‘A’

byte

byte, int, long, and short can be expressed in decimal(base 10), hexadecimal(base 16) or octal(base 8) number systems as well.

Prefix 0 is used to indicate octal, and prefix 0x indicates hexadecimal when using these number systems for literals. For example −

int decimal = 100;
int octal = 0144;
int hexa =  0x64;

byte VS char

byte a = 65;
byte a = 0x41
char a = 'A'

byte i = 21363;//Type mismatch: cannot convert from int to byte

int i=21363;
char hanz = (char)i;//21363是汉字 “即”

注意:这些都可以转化为’A’
‘\u0041’
(char)65
(char)0x41

总结


  • Unicode 其实就是\u+十六进制来代表所有的字符
  • 同时十六进制转化为十进制后,也可以代表所有的字符
  • 十进制不只是byte类型,byte类型不能包括所有的字符。

  • char data type is a single 16-bit Unicode character
  • Minimum value is ‘\u0000’ (or 0)
  • Maximum value is ‘\uffff’ (or 65,535 inclusive)

创业,我为什么失败??? http://www.vchome.net

2002年11月至2003年5月,这段时间是阿蒙(http://www.vchome.net)的第一次创业,显然是失败的,深圳是个充满诱惑同时也充满陷阱的城市,年轻人需要这样的城市,创业者更需要这样的...
  • harrymeng
  • harrymeng
  • 2003-07-02 16:12:00
  • 4561

char类型和Unicode编码

【0】README 0.1)本文对 char类型和Unicode编码 的总结并不完整,仅供参考; 【1】char 类型 1)char类型:它用于表示单个字符, 通常用来表示字符常量; 2)Unic...
  • PacosonSWJTU
  • PacosonSWJTU
  • 2016-04-10 15:57:29
  • 2656

UniCode 下 CString 转 char* 的方法

今天进行文件操作时,将CString的GetBuffer()后直接倒到char数组后写入文件发现 每个字符与字符之间都有一个空格存在,而且有内容丢失。原来CString类对象GetBuffer(),后...
  • neverup_
  • neverup_
  • 2010-06-11 17:21:00
  • 32944

char类型与Unicode编码

 Java的char型是非常独特的,占用两个字节,因为Java中char型采用了Unicode编码。要理解这个问题,我们必须要理解什么是Unicode。世界上存在着多种编码方式,同一个二进制数字可以被...
  • QGJava
  • QGJava
  • 2010-07-11 13:51:00
  • 7986

关于ASCII、Unicode、Char、NChar之间的联系与区别

ASCII: 将字符转换为ASC码,只适用编码范围0000-007F之间的字符,十进制:0~127 Unicode:将字符转换成Unicode编码,包含ASC码,0000-FFFF之间的全部编码...
  • Wikey_Zhang
  • Wikey_Zhang
  • 2017-08-01 18:16:02
  • 273

Unicode To BYTE

    BYTE bUid[20], bPwd[20];    char test[20];    VARIANT rst;    VariantInit(&rst);    CString csSq...
  • Jacky_Dai
  • Jacky_Dai
  • 2008-10-16 15:29:00
  • 417

关于”unicode字符是2个字节“这句话的讨论

很多人,即使是有一些项目经验的人,都说过这句话。但是如果深入的理解什么是unicode之后就会知道,原来我们经常说的这句话“unicode字符是2个字节”这句话是有问题的。 要说清楚这个问题,首先就...
  • kemaWCZ
  • kemaWCZ
  • 2016-02-26 13:58:36
  • 3441

多字节编码与Unicode码的区别

多字节字符与宽字节字符 char与wchar_t 我们知道C++基本数据类型中表示字符的有两种:char、wchar_t。  char叫多字节字符,一个char占一个字节,之所以叫多字节字符是因为...
  • youxishaonian
  • youxishaonian
  • 2017-04-21 10:53:58
  • 1192

带你玩转Visual Studio——带你理解多字节编码与Unicode码

上一篇文章带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑帮我们理解了Windows中的各种类型C/C++运行时库及它的来龙去脉,这是C++开发中特别容易误入歧途的...
  • luoweifu
  • luoweifu
  • 2015-10-25 22:55:33
  • 27190

unicode字符和多字节字符的相互转换接口

作者:朱金灿来源:http://blog.csdn.net/clever101            发现开源代码的可利用资源真多,从sqlite3的源码中抠出了几个字符转换接口,稍微改造下了发现还挺...
  • clever101
  • clever101
  • 2016-05-24 19:11:02
  • 3858
收藏助手
不良信息举报
您举报文章:Unicode,以及byte和char的关系
举报原因:
原因补充:

(最多只允许输入30个字)