字符编码问题之GBK确保与ASCII码的兼容性如何解决

简介: 字符编码问题之GBK确保与ASCII码的兼容性如何解决

问题一:GBK中的不同部分(GBK/1、GBK/2等)分别收录了什么内容?


GBK中的不同部分(GBK/1、GBK/2等)分别收录了什么内容?


参考回答:

GBK/1收录除 GB 2312 字符外的其他增补字符,GBK/2收录 GB2312 字符,GBK/3收录 CJK 字符,GBK/4收录 CJK 字符和增补字符,GBK/5为非中文字符,UDC为用户自定义字符。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/653949


问题二:为什么GBK的尾字节要从40开始,而不是从00开始?


为什么GBK的尾字节要从40开始,而不是从00开始?


参考回答:

GBK的尾字节编码高位没有强制要求是1,当高位是0时跟ASCII码是冲突的,ASCII码里00-40之间大部分都是控制字符,所以排除控制字符主要是为了防止丢失高字节导致出现系统性严重后果。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/653950


问题三:为什么GBK要排除FF和xx7F这两条线的编号?


为什么GBK要排除FF和xx7F这两条线的编号?


参考回答:

排除FF是为了兼容GB2312,GB2312在这个位是保留不使用的;而7F表示DEL字符就是向后删除一个字符,如果传输过程中丢失首字节,那么就会出现严重的后果,所以需要将xx7F也排除。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/653951


问题四:GBK如何确保与ASCII码的兼容性?


GBK如何确保与ASCII码的兼容性?


参考回答:

GBK通过规定第一个字节大于127来表示汉字的开始,并且尾字节避免与ASCII码中的控制字符冲突(即尾字节从40开始),从而确保与ASCII码的兼容性。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/653952


问题五:GB18030是如何实现对Unicode标准的兼容的?


GB18030是如何实现对Unicode标准的兼容的?


参考回答:

GB18030其实是对齐Unicode标准的,里面包括了所有Unicode字符集,也算是Unicode的一种实现(UTF)。它采用字节变长编码,单字节区兼容ASCII、双字节区兼容GBK、四字节区对齐所有Unicode码位。


关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/653953


目录
相关文章
|
数据安全/隐私保护 虚拟化 Windows
如何在 VM 虚拟机中安装 Windows Server 2003 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 Windows Server 2003 操作系统保姆级教程(附链接)
QString与char *之间的完美转换,支持含有中文字符的情况
QString与char *之间的完美转换,支持含有中文字符的情况
2810 0
|
存储 编译器 C语言
C语言:数组名作为类型、作为地址、对数组名取地址的区别
在C语言中,数组名可以作为类型、地址和取地址使用。数组名本身代表数组的首地址,作为地址时可以直接使用;作为类型时,用于声明指针或函数参数;取地址时,使用取地址符 (&),得到的是整个数组的地址,类型为指向该类型的指针。
1408 4
|
数据采集 存储 监控
Java爬虫:数据采集的强大工具
在数据驱动的时代,Java爬虫技术凭借其强大的功能和灵活性,成为企业获取市场信息、用户行为及竞争情报的关键工具。本文详细介绍了Java爬虫的工作原理、应用场景、构建方法及其重要性,强调了在合法合规的前提下,如何有效利用Java爬虫技术为企业决策提供支持。
|
运维 Prometheus 监控
从文化到实践:DevOps的基本概念与核心实践详解
从文化到实践:DevOps的基本概念与核心实践详解
631 5
|
算法
算法】位运算——常见位运算基础操作总结
算法】位运算——常见位运算基础操作总结
597 0
算法】位运算——常见位运算基础操作总结
|
物联网 数据处理 数据安全/隐私保护
程序与技术分享:BL602&BL604综合项目2:dolphin蓝牙跳蛋
程序与技术分享:BL602&BL604综合项目2:dolphin蓝牙跳蛋
|
Go 内存技术
【Jlink】JLink Commander调试方法
上面的信息连可以看到当前运行的PC指针,再可以结合生成的map文件,就可以看到当前运行的函数。例如上面运行的PC指针为0x01000E72,下图是固件的map文件,查看map文件对应地址的函数为SEGGER_RTT_Write。用来读取内存的数据,参数为内存的地址和读取的长度。也可以直接用mem命令按照8位来读取。常用的命令有halt,go,mem(mem8,mem16, mem32), write(write1, write2, write4 )用来写入对应的内存地址,参数为内存的地址和写入的数据。
4167 45
【Jlink】JLink Commander调试方法
|
网络协议 PHP
Wireshark常用过滤器表达式汇总
【7月更文挑战第6天】Wireshark 抓包和显示过滤器用于精确定位网络流量。