gpt4 book ai didi

ruby - 解释那些转义数字在 ruby​​ 1.8.7 中的 unicode 编码中意味着什么

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:18 24 4
gpt4 key购买 nike

0186 是 unicode“代码”。 198和134从哪里来?如何反过来,从这些字节码到 unicode 字符串?

>> c = JSON '["\\u0186"]'
[
[0] "Ɔ"
]
>> c[0][0]
198
>> c[0][1]
134
>> c[0][2]
nil

另一个令人困惑的事情是解包。另一个看似随意的数字。那是从哪里来的?它甚至是正确的吗?来自1.8.7 String#unpack documentation :

你 |整数 | UTF-8 字符作为无符号整数

>> c[0].unpack('U')
[
[0] 390
]
>

最佳答案

您可以在这里找到答案Unicode Character 'LATIN CAPITAL LETTER OPEN O' (U+0186) :

  • 请注意 186(十六进制)=== 390(十进制)
  • C/C++/Java 源代码:“\u0186”
  • UTF-32(十进制):390
  • UTF-8(十六进制):0xC6 0x86(即 198 134)

您可以在维基百科关于 UTF-8 的文章中阅读有关 UTF-8 编码的更多信息.

  • UTF-8(UCS 转换格式 — 8 位 [1])是一种可变宽度编码,可以表示 Unicode 字符集中的每个字符。它旨在与 ASCII 向后兼容,并避免 UTF-16 和 UTF-32 中字节顺序和字节顺序标记的复杂性。

关于ruby - 解释那些转义数字在 ruby​​ 1.8.7 中的 unicode 编码中意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9171927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com