Unicode 和ASCII码

在Unicode中:汉字“字”对应的数字是23383(十进制),十六进制表示为5B57。在Unicode中,我们有很多方式将数字23383表示成程序中的数据,包括:UTF-8UTF-16UTF-32。UTF是“UCS
Transformation Format”的缩写,可以翻译成Unicode字符集转换格式,即怎样将Unicode定义的数字转换成程序数据。例如,“汉字”对应的数字是0x6c49和0x5b57,而编码的程序数据是:


1

2

3


chardata_utf8[]={0xE6,0xB1,0x89,0xE5,0xAD,0x97};//UTF-8编码

char16_tdata_utf16[]={0x6C49,0x5B57};//UTF-16编码

char32_tdata_utf32[]={0x00006C49,0x00005B57};//UTF-32编码

这里用char、char16_t、char32_t分别表示无符号8位整数,无符号16位整数和无符号32位整数。UTF-8、UTF-16、UTF-32分别以char、char16_t、char32_t作为编码单位。(注:
char16_t 和 char32_t 是 C++ 11标准新增的关键字。如果你的编译器不支持 C++ 11
标准,请改用 unsigned short和 unsigned long。)“汉字”的UTF-8编码需要6个字节。“汉字”的UTF-16编码需要两个char16_t,大小是4个字节。“汉字”的UTF-32编码需要两个char32_t,大小是8个字节。根据字节序的不同,UTF-16可以被实现为UTF-16LE或UTF-16BE,UTF-32可以被实现为UTF-32LE或UTF-32BE。下面介绍UTF-8、UTF-16、UTF-32、字节序和BOM。

Unicode 和ASCII码,布布扣,bubuko.com

时间: 2024-08-25 06:19:28

Unicode 和ASCII码的相关文章

创建文件夹并解决解决unicode和ASCII码转换的问题

# -*- coding: UTF-8 -*-import sysimport timeimport os #解决unicode和ASCII码转换的问题reload(sys) #解决unicode和ASCII码转换的问题sys.setdefaultencoding('utf8') #解决unicode和ASCII码转换的问题 context = '''hello world'''f = open("hello.txt", 'a+')f.write(context)f.close()da

自己写unicode转换ascii码,wchar*到char*

对于ascii码的char其实就是unicode码wchar的首个字节码, 如wchar[20] = "qqqq"; 在内存中排码其实是char的'q' '\0'这类,因此我们如果自己写unicode码转换为ascii的char,只需要取其首字节即可,如下本人写了一个wchar到char的转换的函数.由于代码简单,加上了内存泄露测试方式. #include <stdio.h> #ifdef _DEBUG #define DEBUG_CLIENTBLOCK new( _CLI

UNICODE与ASCII

1.ASCII的特点 ASCII 是用来表示英文字符的一种编码规范.每个ASCII字符占用1 个字节,因此,ASCII 编码可以表示的最大字符数是255(00H—FFH).这对于英文而言,是没有问题的,一般只什么用到前128个(00H--7FH,最高位为0).而最高位为1 的另128 个字符(80H—FFH)被称为“扩展ASCII”,一般用来存放英文的制表符.部分音标字符等等的一些其它符号. 但是对于中文等比较复杂的语言,255个字符显然不够用.于是,各个国家纷纷制定了自己的文字编码规范,其中中

编码格式简介:ASCII码、ANSI、GBK、GB2312、GB18030和Unicode、UTF-8,BOM头

编码格式简介:ASCII码.ANSI.GBK.GB2312.GB18030和Unicode.UTF-8,BOM头 二进制: 只有0和1. 十进制.十六进制.八进制: 计算机其实挺笨的,它只认识0101这样的字符串(二进制),当然了我们看这样的01串时肯定会比较头晕的. 所以很多时候为了描述简单都用十进制,十六进制,八进制表示.实际上都是等价的,没啥太多不一样. 位(bit) 计算机中存储一个0,或者一个1的位置空间,叫做位. 字节(byte) 计算机中,我们把连续的8个位空间,叫做一个字节. A

ascii码与unicode码的区别

ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于拉丁字母的一套电脑编码系统.它主要用于显示现代英语和其他西欧语言.它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646. ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符.标准 ASCII 码也叫基础ASCII码,使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9.标点符号, 以

python中的字符串编码问题——2.理解ASCII码、ANSI码、Unicode编码、UTF-8编码

ASCII码:全名是American Standard Code for Information Interchange,ASCII码中,一个英文字母(不分大小写)占一个字节的空间,范围0x00~0x7f,即0-128. ANSI码:ANSI编码是一种对ASCII码的拓展.ANSI编码用0x00~0x7f 范围的1 个字节来表示 1 个英文字符,超出一个字节的 0x80~0xFFFF 范围来表示其他语言的其他字符.前126个与ASCII码相同,之后的字符全是某个国家语言的所有字符.容量2的16次

字符集详解 ASCII码、Unicode、UTF-8 (转)

认识字符集 对于计算机而言,它仅认识两个0和1,不管是在内存中还是外部存储设备上,我们所看到的文字.图片.视频等等“数据”在计算机中都是已二进制形式存在的.不同字符对应二进制数的规则,就是字符的编码.字符编码的集合称为字符集. 在早期的计算机系统中,使用的字符是非常少的,他们只包括26个英文字母.数字符号和一些常用符号,对于这些字符进行编码,用1个字节就足够了,但是随着计算机的不断发展,为了适应全世界其他各国民族的语言,这些少得可怜的字符编码肯定是不够的.于是人们提出了UNICODE编码,它采用

Unicode和Ascii的区别

①ASCII就是编码英文的26个字母和一些常见的符号,之后扩展了一半.总之是一个字节来做编码,大于128的部分是一些特殊符号.但ASCII是无法编码别的东西的,比如说是不存在"中文的ascii码需要2个字符"这种说法的.ASCII就只有一个字节. ②Unicode是足够编码地球上所有的语言了,所以ASCII中所能表示的,Unicode当然全部包括了.Unicode本身是只有2个字节的,之所以出现UTF-8,UTF-16等等之类,那是为了针对不同的应用环境,提高整体编码效率,比如如果某篇

Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换

public class DigitalTrans { /** * 数字字符串转ASCII码字符串 * * @param String * 字符串 * @return ASCII字符串 */ public static String StringToAsciiString(String content) { String result = ""; int max = content.length(); for (int i = 0; i < max; i++) { char c