腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
首页
标签
unicode
#
unicode
关注
专栏文章
(1.1K)
技术视频
(0)
互动问答
(9)
UTF-8和Unicode有什么不同?
2
回答
unicode
爹说的都是真理
幻想设计师
重复一遍,这里的关系是,UTF-8是Unicode的实现方式之一,它规定了字符如何在计算机中存储、传输等。 UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。 UTF-8的编码规则很简单,只有二条: 1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。 2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。 下表总结了编码规则,字母x表示可用编码的位。 Unicode符号范围 | UTF-8编码方式 (十六进制) | (二进制) --------------------+--------------------------------------------- 0000 0000-0000 007F | 0xxxxxxx 0000 0080-0000 07FF | 110xxxxx 10xxxxxx 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 下面,还是以汉字“严”为例,演示如何实现UTF-8编码。 已知“严”的unicode是4E25(100111000100101),根据上表,可以发现4E25处在第三行的范围内(0000 0800-0000 FFFF),因此“严”的UTF-8编码需要三个字节,即格式是“1110xxxx 10xxxxxx 10xxxxxx”。然后,从“严”的最后一个二进制位开始,依次从后向前填入格式中的x,多出的位补0。这样就得到了,“严”的UTF-8编码是“11100100 10111000 10100101”,这是保存在计算机中的实际数据,转换成十六进制就是E4B8A5,转成十六进制的目的为了便于阅读。...
展开详请
赞
0
收藏
0
评论
0
分享
重复一遍,这里的关系是,UTF-8是Unicode的实现方式之一,它规定了字符如何在计算机中存储、传输等。 UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。 UTF-8的编码规则很简单,只有二条: 1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。 2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。 下表总结了编码规则,字母x表示可用编码的位。 Unicode符号范围 | UTF-8编码方式 (十六进制) | (二进制) --------------------+--------------------------------------------- 0000 0000-0000 007F | 0xxxxxxx 0000 0080-0000 07FF | 110xxxxx 10xxxxxx 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx 0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 下面,还是以汉字“严”为例,演示如何实现UTF-8编码。 已知“严”的unicode是4E25(100111000100101),根据上表,可以发现4E25处在第三行的范围内(0000 0800-0000 FFFF),因此“严”的UTF-8编码需要三个字节,即格式是“1110xxxx 10xxxxxx 10xxxxxx”。然后,从“严”的最后一个二进制位开始,依次从后向前填入格式中的x,多出的位补0。这样就得到了,“严”的UTF-8编码是“11100100 10111000 10100101”,这是保存在计算机中的实际数据,转换成十六进制就是E4B8A5,转成十六进制的目的为了便于阅读。
std :: wstring 和 std :: string的差异?
1
回答
unicode
、
ascii
、
std
、
string
、
编译器
Tabor
Tencent · Content Operation (已认证)
一个会花式跑脚本的boy~
有几个薄弱的原因。它的存在是由于历史的原因,宽广的人被认为是支持Unicode的正确方式。它现在被用来连接喜欢UTF-16字符串的API。我只在这种API调用的附近使用它们。 这与std :: string没有任何关系。它可以容纳你输入的任何编码。唯一的问题是你如何对待它的内容。我的建议是UTF-8,所以它将能够正确保存所有的Unicode字符。这在Linux上是很常见的做法,但我认为Windows程序也应该这样做。 没有。 宽字符是一个令人困惑的名字。在Unicode的早期,有一种观点认为,字符可以用两个字节编码,因此名字就可以了。今天,它代表“字符长度为两个字节的任何部分”。UTF-16被看作是这种字节对(又名宽字符)的序列。UTF-16中的字符需要一个或两个pares。...
展开详请
赞
0
收藏
0
评论
0
分享
有几个薄弱的原因。它的存在是由于历史的原因,宽广的人被认为是支持Unicode的正确方式。它现在被用来连接喜欢UTF-16字符串的API。我只在这种API调用的附近使用它们。 这与std :: string没有任何关系。它可以容纳你输入的任何编码。唯一的问题是你如何对待它的内容。我的建议是UTF-8,所以它将能够正确保存所有的Unicode字符。这在Linux上是很常见的做法,但我认为Windows程序也应该这样做。 没有。 宽字符是一个令人困惑的名字。在Unicode的早期,有一种观点认为,字符可以用两个字节编码,因此名字就可以了。今天,它代表“字符长度为两个字节的任何部分”。UTF-16被看作是这种字节对(又名宽字符)的序列。UTF-16中的字符需要一个或两个pares。
热门
专栏
全栈程序员必看
55K 文章
454 订阅
恩蓝脚本
12.6K 文章
85 订阅
bit哲学院
1.6K 文章
24 订阅
python3
11.9K 文章
238 订阅
Jerry的SAP技术分享
10.8K 文章
159 订阅
热门
标签
更多标签
ICP备案
云服务器
对象存储
云点播
即时通信 IM
实时音视频
DNS 解析 DNSPod
内容分发网络 CDN
人脸识别
私有网络
python
java
javascript
人工智能
android
领券