老师,程序是怎样准确判断一个字节的英文字符和三个字节的中文的字符的呢?
来源:3-6 字符和字符串处理

南国漂泊
2018-07-20
Yes我爱慕课网!
程序会否错误的把“Yes”这三个单字节当成一个三字节处理呢?如果不会,那程序是怎样设计以保证这一点的呢?
写回答
2回答
-
当然不会。这是编码方案里面规定的。基本上是预留了一些取值空间,看到这些值才会认为这个字节是一部分字符需要往后看。具体怎么规定的我们可以看一下utf-8标准
012018-07-26 -
南国漂泊
提问者
2018-07-26
谢谢老师的提示
英文太差,结合“wikipedia”和“百度百科”,总算是知道这UTF8编码是怎么回事了
百度百科: https://baike.baidu.com/item/UTF-8/481798?fromtitle=UTF8&fromid=772139&fr=aladdin
wikipedia: https://en.wikipedia.org/wiki/UTF-8
这张图是从wikipedia上截取的
从图中可以看到,如果是一个字节的英文字符,最高位是 0 ;如果传输的是两个字节,第一个字节的高位是 110 ,第二个字节高位是 10 ;其他的以此类推……
从第一个字节就可以判断出,你传输的是单字节的英文字符还是三字节的中文字符。
目前,我是这样理解的!
00
相似问题