如何在十六进制 NCR 和 UTF-8 代码单元之间进行转换?

2024-01-06

示例:“大红圈”表情符号 ???? 可以使用 HTML 显示🔴但是,如果我创建一个包含相同表情符号的文本文件,使用 UTF-8 编码保存该文件,然后使用十六进制编辑器检查它,我可以看到表情符号是用这四个字节表示的:F0 9F 94 B4。这是一个非常不同的数字。

两种表示形式之间的转换公式是什么?如何从 0x1F534 派生出 0xF09F94B4,反之亦然?


1f534指 Unicode 代码点。用二进制表示是:

00000001 11110101 00110100

如果你看一下UTF-8 位分布 http://www.unicode.org/versions/Unicode9.0.0/ch03.pdf#page=54您可以看到这些位如何插入到代码点的 UTF-8 编码中。

Scalar Value                First Byte  Second Byte Third Byte  Fourth Byte
00000000 0xxxxxxx           0xxxxxxx            
00000yyy yyxxxxxx           110yyyyy    10xxxxxx        
zzzzyyyy yyxxxxxx           1110zzzz    10yyyyyy    10xxxxxx    
000uuuuu zzzzyyyy yyxxxxxx  11110uuu    10uuzzzz    10yyyyyy    10xxxxxx

所以你有:

000uuuuu zzzzyyyy yyxxxxxx as
00000001 11110101 00110100

将位插入:

11110uuu 10uuzzzz 10yyyyyy 10xxxxxx =
11110000 10011111 10010100 10110100

十六进制表示的是F0 9F 94 B4.


反之,从 UTF-8 到代码点,您检查第一个字节的最高有效位以查看使用了多少字节(从上表中应该可以清楚地看出),然后拔出相关位并放入他们在一起。


奖金线稿:

000uuuuu zzzzyyyy yyxxxxxx as
00000001 11110101 00110100
   │││││ ││││││││ │││││││└────────┐
   │││││ ││││││││ ││││││└────────┐│
   │││││ ││││││││ │││││└────────┐││
   │││││ ││││││││ ││││└────────┐│││
   │││││ ││││││││ │││└────────┐││││
   │││││ ││││││││ ││└────────┐│││││
   │││││ ││││││││ │└─────┐   ││││││
   │││││ ││││││││ └─────┐│   ││││││
   │││││ │││││││└──────┐││   ││││││
   │││││ ││││││└──────┐│││   ││││││
   │││││ │││││└──────┐││││   ││││││
   │││││ ││││└──────┐│││││   ││││││
   │││││ │││└───┐   ││││││   ││││││
   │││││ ││└───┐│   ││││││   ││││││
   │││││ │└───┐││   ││││││   ││││││
   │││││ └───┐│││   ││││││   ││││││
   ││││└────┐││││   ││││││   ││││││
   │││└────┐│││││   ││││││   ││││││
   ││└─┐   ││││││   ││││││   ││││││
   │└─┐│   ││││││   ││││││   ││││││
   └─┐││   ││││││   ││││││   ││││││
11110uuu 10uuzzzz 10yyyyyy 10xxxxxx =
11110000 10011111 10010100 10110100
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在十六进制 NCR 和 UTF-8 代码单元之间进行转换? 的相关文章

随机推荐

  • Elasticsearch 集群中相同查询的不同结果

    我创建了一个具有 3 个节点 3 个分片和 2 个副本的 Elasticsearch 集群 当使用相同的数据命中相同的索引时 相同的查询会获取不同的结果 现在 结果基本上按 score 字段 desc 排序 我认为这是默认的排序方式 并且要
  • 将目录中的图像作为 Tensorflow 数据集加载

    我对 ML 比较陌生 对 TensorfFlow 也非常陌生 我花了很多时间学习 TensorFlow MINST 教程以及https github com tensorflow tensorflow tree master tensorf
  • emacs 中的 Command-T

    emacs 的 vim 中是否有类似 CommandT 的插件 我知道一些插件可以进行基于目录的补全 但是是否有一个插件可以在完整路径上进行匹配 一个例子 bar hello baz test hello foo hello lost ba
  • 多线程Delphi [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我在del
  • 在 Node 本地使用 dynamodb 时“无法从任何提供者加载凭据”

    我正在本地设置 dynamodb 以使用我的 Node 应用程序进行测试 为了设置它 我只是简单地复制了代码here http docs aws amazon com amazondynamodb latest gettingstarted
  • C# 转换 Unicode 字符 [重复]

    这个问题在这里已经有答案了 是否可以将像 u00e8 这样的字符串 通过使用 Streamreader 读取 WebRequestResponse 获得 转换为 unicode char 使用编码尝试了很多事情 但没有任何效果 您可以使用R
  • Asp.Net Core Web 应用程序:使用 IExceptionFilter 与自定义中间件进行全局异常处理

    Asp Net Core 支持两种方法对 Web 应用程序进行全局异常处理 实现 IExceptionFilter 或创建自定义中间件 其中一种相对于另一种有什么优势吗 我看到的大多数参考文献都是关于创建自定义中间件的 ASP NET 核心
  • Java Deprecated Class 使用已弃用的类 -- 我可以关闭编译器警告吗?

    我正在努力弃用一组 Java 类 以便不再使用它们 我不想关闭针对已弃用用法的编译器警告 但我发现如果我的一个已弃用类导入了另一个已弃用类 我也会收到警告 我不想修改我要弃用的代码 但我也不希望针对这些情况发出警告 在这些情况下 有没有办法
  • 如何从 Xcode 9 中打开的多个模拟器退出或关闭单个模拟器?

    我运行多个模拟器 我需要关闭其中一个 我怎样才能做到这一点 因为我尝试像旧版本的 Xcode 中那样关闭它 但无法关闭 选择 Simulator 进入文件菜单 gt 关闭窗口或按 Command W 它将关闭顶部的模拟器 进入 Window
  • 如何使用 NuGet.Core 创建 NuGet 包?

    我想创建一个使用 NuGet 包 NuGet Core 的应用程序 它有一个名为 PackageBuilder 的类 使之成为可能 有可用的示例 教程 文档吗 一个非常简单的例子 创建一个文件夹 其中包含您想要包含在包中的文件 写一些像这样
  • Google 开发者屏幕截图(图形资产)错误图像无效

    尝试上传任何图形 例如屏幕截图 图标 特写图形 但我不断收到来自 Google 的相同错误 而我的图片规格正确 消息是 上传错误 您需要检查您的屏幕截图图像是否有效 或 您需要修复您的特征图形是否有效 有人有同样的错误或有任何线索吗 我什至
  • 如何在表达式中计算后缀和前缀增量运算符? [复制]

    这个问题在这里已经有答案了 include stdafx h include
  • 使用 Sequelize 计算列中分组数据的平均值

    我试图找到具有相同 VenueId 的所有数据的 评级 列的平均值 我可以使用原始代码 但需要在 Sequelize 中对其进行调整 工作原始代码是 SELECT venueId AVG rating AS average FROM rev
  • 查找函数内的特定变量并将它们排序返回

    首先感谢您转发的帮助 我正在使用 Python 并且尝试在 py 文件中搜索以名称 test 开头的所有函数以及包含的所有变量 我搜索的变量的格式如下 var blabla 所以这里我有一个例子 def test 123 init var
  • 我可以获得 C# 应用程序中所有线程的堆栈跟踪吗?

    我正在工作中调试一个大型应用程序中的一个明显的并发问题 该错误仅在运行许多 12 小时后在某些性能较低的计算机上出现 并且我从未在调试器中重现它 正因为如此 我的调试工具基本上仅限于分析日志文件 C 可以轻松获取抛出异常的线程的堆栈跟踪 但
  • MongoDB C# - 获取不存在的元素的 BsonDocument

    所以我有一个 BsonDocument b 假设它有 FirstName LastName Age 您可以通过 b FirstName 等访问它 如果我尝试执行 b asdfasdf 当然不存在 它不会返回 null 而是会导致应用程序出错
  • 避免在查询中重复 SQL 片段?

    我有这个查询 伪代码 SELECT a 1 b 2 c CASE WHEN ISNULL SELECT MONTH GETDATE lt long query 0 0 THEN found ELSE SELECT MONTH GETDATE
  • 超出最大请求长度回发异常

    对于在页面加载时在 gridview 中绑定超过 500 条记录的 ASP 页面 我在单击按钮时遇到以下异常 我的页面没有任何上传控件 它包含一个文本框 按钮和网格视图 有谁知道为什么会发生这种情况 异常描述 Maximum request
  • 当应用程序在后台时,React Native 处理套接字连接的事件吗?

    我正在使用 React Native 开发聊天应用程序WebSocket在活动模式下一切正常 但是当您按下主页按钮以使应用程序处于后台模式时 WebSocketonMessage事件函数没有被触发 好处是WebSocket连接仍处于连接状态
  • 如何在十六进制 NCR 和 UTF-8 代码单元之间进行转换?

    示例 大红圈 表情符号 可以使用 HTML 显示 x1f534 但是 如果我创建一个包含相同表情符号的文本文件 使用 UTF 8 编码保存该文件 然后使用十六进制编辑器检查它 我可以看到表情符号是用这四个字节表示的 F0 9F 94 B4