像是:靠ོ༵ 之类的一些特殊字,以编码的角度,该如何理解?

发布于 2022-09-06 13:22:25 字数 471 浏览 24 评论 0

最近在网路上看到一些奇怪的中文字,例如:

ྋ试ོ༵试ོ༵你ོ༵的ོ༵眼ོ༵力ོ༵ 请找ོ༵到ོ༵一ོ༵帆ོ༵风顺靠ོ༵靠ོ༵靠ོ༵

我试着将 靠ོ༵ 这个字找了线上的转换器 转成 utf-8
utf-8 显示结果如下

\xe9\x9d\xa0\xe0\xbd\xbc\xe0\xbc\xb5


其中 \x 的部分 我当作是 utf-8 的表达,但我查不到这是哪裡的规范?
其中 e9 9d a0 ... 我认为是 16 进制的表示,e9 将会佔 1 个 字节(byte) 的大小
查看 utf-8 定义后发现 :
通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码。 
也就是说 上面的这个字 用到了 e9 9d a0 e0 bd bc e0 bc b5 共 9 个字节(byte),應該不屬於中文字。

请问这样我能知道它这个字,是属于哪一国语言吗? 或者是在 utf-8 的定义中,这个字在哪个范围内呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

马蹄踏│碎落叶 2022-09-13 13:22:25
Unicode符号范围(十六进制)UTF-8编码方式(二进制)
0000 0000 - 0000 007F0xxxxxxx
0000 0080 - 0000 07FF110xxxxx 10xxxxxx
0000 0800 - 0000 FFFF1110xxxx 10xxxxxx 10xxxxxx
0001 0000 - 0010 FFFF11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

取 Unicode 转二进制代入 UTF-8 xxx 部分

'靠'
// Unicode: '\u9760'                     --- '1001 0111 0110 0000'
// UTF-8:   '11101001 10011101 10100000' --- '\xe9\x9d\xa0'

'天上飞的那个打不出来'
// Unicode: '\u0f7c'                     --- '0000 1111 0111 1100'
// UTF-8:   '11100000 10111101 10111100' --- '\xe0\xbd\xbc'


'地上爬的那个也打不出来'
// Unicode: '\u0f35'                     --- '0000 1111 0011 0101'
// UTF-8:   '11100000 10111100 10110101' --- '\xe0\xbc\xb5'
痴梦一场 2022-09-13 13:22:25

看过一篇相关文章

以为你会在 2022-09-13 13:22:25

首先回答问题本身:
“靠ོ༵”这不是一个整体的汉字,而是一个普通的汉字“靠”和紧随其后两个特殊字符的组合。(复制到记事本等只支持纯文本的编辑器里你就可以明显发现这一点)

两个特殊字符我也不清楚是什么,想知道详细可以去查对应编码范围区域。
猜测是一些修饰字符,某些外语里需要用到。


其次纠正问题本身一个错误:

查看 utf-8 定义后发现 : 通常1个字节可以存入一个ASCII码,2个字节可以存放一个汉字国标码。
也就是说 上面的这个字 用到了
e9 9d a0 e0 bd bc e0 bc b5 共 9 个字节(byte),應該不屬於中文字。

utf-8是unicode的一种编码方式,而汉字国标码是GB系列的编码(GB2312、GBK、GB18030等)。
这两者是两种东西,不会有所说的“查看utf-8定义……存放一个汉字国标码”的情况。2个字节放一个汉字的说法也不准确。

原始的unicode码,所有字符都是2个字节,包括汉字。
utf-8中,所有字符长度不定(1-4个字节),一个汉字用3个字节。
国标码的GB2312和GBK中,所有字符都是2个字节,包括汉字。
国标码的GB18030中,每个字符是1/2/4个字节

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文