UTF-8 与 UTF-16 和 UTF-32 转换混淆

2024-01-02

我对将 unicode 字符转换为十六进制值感到有点困惑。

我正在使用这个网站来获取字符的十六进制值。 (https://www.branah.com/unicode-converter https://www.branah.com/unicode-converter)

如果我输入“A”并进行转换,那么我会得到类似的结果:

0041 --> UTF-16
00000041 --> UTF-32
41 --> UTF-8
00065 --> Decimal Value

上面的输出是有意义的,因为我们可以将所有这些十六进制值转换为 65。

现在,如果我输入“Я”(不带引号)并进行转换,那么我会得到类似的值。

042f --> UTF-16
0000042f --> UTF-32
d0af --> UTF-8
01071 --> Decimal Value

这个输出对我来说没有意义,因为并非所有这些十六进制值都会转换回 1071。

如果你拿d0af并尝试将其转换回十进制值,然后你会得到53423.

这对我来说真的很困惑,我一直在网上搜索有关此转换的答案,但到目前为止我还没有找到任何好的答案。

所以,我想知道这里是否有人可以提供帮助。 (这意味着很多)//提前致谢。

您还可以查看下面的链接,了解此二进制转换的示例。(你能解释为什么 utf-8 二进制值在上一个例子中不同吗?)

http://kunststube.net/encoding/ https://i.stack.imgur.com/s4JYD.png


UTF-8 使用可变长度编码(可以使用 1、2、3 或 4 个字节来存储单个字符)。

在这种情况下:

d0af = 11010000 10101111

110一开始告诉我们解码时需要 2 个字节(查看原理图的字节 1 列)。解码时,我们使用字节中第一个 0 后面的二进制数字。所以,110x xxxxx 是我们实际 unicode 值的第一批值。每个附加字节都遵循以下模式10xx xxxx。因此,从字节 1 和 2 中获取值,我们得到:

110[10000] 10[101111] = 
      V        V
     10000 101111 = 42f = 1071

这样做的原因是对于普通字符来说,传输和存储所需的字节数较少。但在需要不常见字符的奇怪情况下,它仍然可以在 UTF-8 的一部分中使用。

如果您有任何疑问,请评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UTF-8 与 UTF-16 和 UTF-32 转换混淆 的相关文章

随机推荐

  • SQOOP增量导入:当从数据库中删除一行时,它如何处理数据?

    假设我有一个包含列 emp id emp name emp age emp update ts 的员工表 如果表上有更新 则 updat ts 字段每次都会自动更新为当前时间戳 现在我的问题是 当我更新 插入表中的行并使用lastmodif
  • NSSplitViewController 导致包含的视图绘制在窗口角上

    I m trying to create a little Finder clone using Cocoa I m placing a source list table view to act as a sidebar and a st
  • 如何使用 Tensorboard 在同一图上绘制不同的汇总指标?

    我希望能够绘制每批次训练损失和average验证损失用于 Tensorboard 中同一图上的验证集 当我的验证集太大而无法放入内存时 我遇到了这个问题 因此需要批处理并使用tf metrics更新操作 这个问题可能适用于您想要显示在 Te
  • UIPageViewController 内的 UISlider

    我有一个 PageViewController 其初始化如下 self pageViewController UIPageViewController alloc initWithTransitionStyle UIPageViewCont
  • 设置独立的 cygwin 应用程序

    我想设置一组最小的 cygwin 应用程序 ls diff path find grep 以便它们在没有完整 cygwin 安装的计算机上运行 我假设我需要的只是相关的 exe 文件和 dll 到目前为止 这就是我所拥有的 到目前为止它有效
  • 井字游戏评价棋盘算法

    我已经用人工智能实现了井字棋 但现在面临一个问题 如何评价井字棋游戏的棋盘 也许一开始我会描述它应该如何工作 我们有 n 个井字棋游戏板 有不同的变体 我们的人工智能应该评估哪个棋盘最适合继续前进 最适合对手 Ai 通过极小极大算法计算移动
  • data.table 通过带空格的列名进行操作失败

    可重现的例子 Use the Iris data set library data table iris colnames iris 3 lt Petal Length iris lt as data table iris 访问没有空格的列
  • 如何调整/更改滚动条宽度

    有没有办法暂时改变滚动条宽度当我测试一些布局代码时 在 FF 或 IE 中 我记得不久前读过一些关于这与分辨率有关的内容 但不太记得了 我尝试更改计算机本身的分辨率 尝试增加浏览器字体大小 但都不起作用 Update我遇到过描述了如何在 F
  • 有没有办法在 PHP 中将 json 转换为 xml?

    有什么办法可以转换吗json to xml in PHP 我知道xml到json是很有可能的 如果您愿意使用XML序列化器 http pear php net package XML Serializer从 PEAR 中 您可以通过两个简单
  • 有没有办法包含来自不同目录的子 Rmd 文件

    我有一个主降价文件 例如 Parent Rmd 以及许多子文档 其中包含 r child introduction Rmd echo FALSE r child chapter2 Rmd echo FALSE 看来我应该能够做到 r chi
  • 样式表单错误消息 - bootstrap/rails

    我的 Rails 表单的错误消息在引导程序中看起来很糟糕 有谁知道更好 好看 错误消息的解决方案 我使用 Rails 和 Bootstrap 我的表格 它是一个助手 是这样的 div h2 prohibited this user from
  • 按钮.Visible = true;在功能内激活时无法将按钮设置为可见

    我找不到其他人遇到同样的问题 所以希望有人能有一些想法或能够向我指出另一个答案 当通过按下表单上的按钮来运行函数时 另一个按钮应该变得可见 然而 即使按钮是函数中的第一个按钮 它也永远不会显示 该函数中的所有其他代码都可以完美运行 这是代码
  • 什么是元数据?它在android中有什么用

    我是 Android 新手 之前没有见过或听说过元数据 然而我用谷歌搜索并在 YouTube 上搜索它 它基本上是你的对象的信息 如果我错了请纠正我 任何人都可以帮助我以更好的方式理解它 1 什么是元数据 2 为什么在Android中使用它
  • jQuery 中是否有 $.each 函数的条件循环

    我有一个关于 jQuery 的疑问 each方法 下面是我的ajax 它运行得很好 ajax url js people json js type post dataType json success function data each
  • 如何使用文本样式创建像 stackoverflow 这样的标签

    我想知道如何在输入字段 例如 stackoverflow 的标记系统 内创建 css 样式 当您单击标签时 文本将被设置样式 而且 当您单击样式标签时 它会再次正常 我想我主要关心的是如何在输入字段内设置文本样式 Thanks 标签不是输入
  • Office 365 Rest API - 守护程序周身份验证

    我正在尝试建立一个Ruby用于访问 Office 365 Rest API 的守护程序服务 最近可以通过 OAuth client credentials 流程来做到这一点 如本博客文章所述 https learn microsoft co
  • 为没有 ZeroMQ 绑定的语言创建 IPython 的语言内核

    有some http andrew gibiansky com blog ipython ipython kernels 有趣的描述 https stackoverflow com questions 22782028 ipython la
  • OpenGL ES 2.0 中许多具有不同纹理的对象

    我是 OpenGL ES 2 0 的新手 它具有可编程管道 并且我正在移植使用不同纹理渲染许多对象的应用程序 那么这将需要为每个对象调用 glDrawArrays 并在调用之间更改纹理 或者还有另一种方法可以通过单个 glDrawArray
  • 沿着一列将 DataFrame 从长到宽重塑

    我正在寻找一种将下面的表 A 显示重新配置为表 B 的方法 Table A type x1 x2 x3 A 4 6 9 A 7 4 1 A 9 6 2 B 1 3 8 B 2 7 9 转化为表B type x1 x2 x3 x1 x2 x3
  • UTF-8 与 UTF-16 和 UTF-32 转换混淆

    我对将 unicode 字符转换为十六进制值感到有点困惑 我正在使用这个网站来获取字符的十六进制值 https www branah com unicode converter https www branah com unicode co