永发信息网

utf-8 繁体中文编码表 范围 是多少

答案:2  悬赏:10  手机版
解决时间 2021-11-11 06:34
utf-8 繁体中文编码表 范围 是多少
最佳答案
UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0x4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所以可以看出unicode是给出一个字符的范围,定义了这个字是码值是多少,至于具体的实现方式可以有多种多样来实现。

UTF-8是一种变长字节编码方式。对于某一个字符的UTF-8编码,如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的位数,其余各字节均以10开头。UTF-8最多可用到6个字节。
如表:
1字节 0xxxxxxx
2字节 110xxxxx 10xxxxxx
3字节 1110xxxx 10xxxxxx 10xxxxxx
4字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5字节 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
6字节 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
因此UTF-8中可以用来表示字符编码的实际位数最多有31位,即上表中x所表示的位。除去那些控制位(每字节开头的10等),这些x表示的位与UNICODE编码是一一对应的,位高低顺序也相同。
实际将UNICODE转换为UTF-8编码时应先去除高位0,然后根据所剩编码的位数决定所需最小的UTF-8编码位数。
因此那些基本ASCII字符集中的字符(UNICODE兼容ASCII)只需要一个字节的UTF-8编码(7个二进制位)便可以表示。

对于上面的问题,代码中给出的两个字节是
十六进制:C0 B1
二进制:11000000 10110001
对比两个字节编码的表示方式:
110xxxxx 10xxxxxx
提取出对应的UNICODE编码:
00000 110001
可以看出此编码并非“标准”的UTF-8编码,因为其第一个字节的“有效编码”全为0,去除高位0后的编码仅有6位。由前面所述,此字符仅用一个字节的UTF-8编码表示就够了。
JAVA在把字符还原为UTF-8编码时,是按照“标准”的方式处理的,因此我们得到的是仅有1个字节的编码。

大家可以试试运行这段代码:

public class TestUTF8 {
public static void main(String[] args) throws Exception {
byte[][] bytes = {
// 00110001
{(byte)0x31},
// 11000000 10110001
{(byte)0xC0,(byte)0xB1},
// 11100000 10000000 10110001
{(byte)0xE0,(byte)0x80,(byte)0xB1},
// 11110000 10000000 10000000 10110001
{(byte)0xF0,(byte)0x80,(byte)0x80,(byte)0xB1},
// 11111000 10000000 10000000 10000000 10110001
{(byte)0xF8,(byte)0x80,(byte)0x80,(byte)0x80,(byte)0xB1},
// 11111100 10000000 10000000 10000000 10000000 10110001
{(byte)0xFC,(byte)0x80,(byte)0x80,(byte)0x80,(byte)0x80,(byte)0xB1},
};
for (int i = 0; i < 6; i++) {
String str = new String(bytes[i], "UTF-8");
System.out.println("原数组长度:" + bytes[i].length +
"/t转换为字符串:" + str +
"/t转回后数组长度:" + str.getBytes("UTF-8").length);
}
}
}
  运行结果为:

原数组长度:1 转换为字符串:1 转回后数组长度:1
原数组长度:2 转换为字符串:1 转回后数组长度:1
原数组长度:3 转换为字符串:1 转回后数组长度:1
原数组长度:4 转换为字符串:1 转回后数组长度:1
原数组长度:5 转换为字符串:1 转回后数组长度:1
原数组长度:6 转换为字符串:1 转回后数组长度:1
全部回答
由 e38080 到 e9be98 ( 包括全型符号 )
第一个中文字则由 e4b880 起追问这个是繁体还是简体,简体是E4B880-E9BEA0追答繁体

其实这麼理解比较好一点, 我说的范围和你说的范围, 都是 中文字
不过你也知道, 有些字是繁简一样的. 所以其实会有重叠的部份

只能说你要的繁体字, 并不超出我所说的范围.
而你说的简体字, 也不超出你说的范围.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
云烟与苏烟哪个贵
桔子美语地址有知道的么?有点事想过去!
我是马化腾的祖宗!以后广大网友那他的我都支
村双核一批是什么意思?
贵阳机场到观山湖区中天会有多少公里
不满足于现状怎么用英语说
使用面积66平米7万装修款怎么装
96加96乘96简便计算的方法是
光武驾校(襄阳枣阳)地址好找么,我有些事要过
很想学DJ打碟找不到师父 去DJ培训学校好吗?
The Carphone Warehouse 中文名称是什么
求安利岚(ARASHI),求高清无水印的图啊
何岳拾金不眛中最后一句中哪一个字有点睛之效
孔明锁木桶怎么解,怎么装上
高姿水循环动力舒缓洁面乳使用时为什么没有泡
推荐资讯
挪威红海参的烹饪方法
通河到阿城多少公里
油缸夹紧机构的原理
赫美微贷合法吗,怎么比高利贷还高,这样的也
世界上第二高的山峰是什么?
奥铃捷运上侧大灯安不了疝气灯为什么呢
时风牌单缸二十八马力柴油机怎么样
有人认为公有制比私有制优越有人认为私有制比
菊字可以组什么词语
想在淘宝网上开个黄山土特产店,不知道有没有
请节哀是什么意思
求versus versace2015秋冬广告的背景音乐
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?