手动将字符从 UTF-8 转换为 ISO-8859-1

2023-12-10

我有字符“ö”。如果我看进去这个 UTF-8 表我看到它有十六进制值F6。如果我看统一码表我看到“ö”有索引E0and 16。如果我添加两者,我会得到代码点的十六进制值F6。这是二进制值1111 0110.

1)如何从十六进制值中获取F6到指数E0 and 16?
2)我不知道怎么来的F6到两个字节C3 B6 ...

因为我没有得到结果,所以我尝试走另一条路。 “ö”在 ISO-8859-1 中表示为“ö”。在里面UTF-8 表我可以看到“à”有十进制值195并且“¶”具有十进制值182。转换为位是1100 0011 1011 0110.

Process:

  1. 看看在一个table并获取字符“ö”的 unicode。根据指数计算E0 and 16你得到了 UnicodeU+00F6.

  2. 根据wildplasser发布的算法可以计算出编码的UTF-8值C3 and B6.

  3. 以二进制形式你得到1100 0011 1011 0110对应于十进制值195 and 182.

  4. 如果这些值被解释为ISO 8859-1(只有 1 个字节)然后你会得到“?”。

PS:我也发现了这个链接,它显示步骤 2 中的值。


您正在使用的页面让您有些困惑。您的“UTF-8 表”或“Unicode 表”都没有为您提供 UTF-8 中的代码点值。它们都只是简单地列出了字符的 Unicode 值。

在 Unicode 中,每个字符(“代码点”)都有一个分配给它的唯一编号。人物ö已分配代码点U+00F6,即F6以十六进制表示,并且246以十进制表示。

UTF-8 是一个表示Unicode,每个 Unicode 代码点使用一到四个字节的序列。该文章描述了从 32 位 Unicode 代码点到 UTF-8 字节序列的转换 - 一旦您习惯了,它就非常简单。当然,计算机总是可以做到这一点,但你可以用铅笔和纸轻松地做到这一点,并在头脑中进行一些练习。

如果你进行这种转变,你会看到U+00F6转换为 UTF-8 序列C3 B6, or 1100 0011 1011 0110以二进制表示,这就是为什么它是 UTF-8 表示形式ö.

您问题的另一半是关于 ISO-8859-1 的。这是一种通常称为“Latin-1"。Latin-1编码的数值与Unicode中的前256个代码点相同,因此ö is F6拉丁语-1。

在 UTF-8 和标准 Unicode 代码点 (UTF-32) 之间进行转换后,获得 Latin-1 编码应该很简单。但是,并非所有 UTF-8 序列/Unicode 字符都有对应的 Latin-1 字符。

请参阅优秀文章每个软件开发人员绝对必须了解 Unicode 和字符集的绝对最低限度(没有任何借口!)为了更好地理解字符编码和它们之间的转换。

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

手动将字符从 UTF-8 转换为 ISO-8859-1 的相关文章

随机推荐

  • 如何从 PuLP 的解中获得 fracGap 或 gapRel?

    我正在使用 python Pulp 包来求解线性程序 还有 MILP 我发现某些问题需要很长时间才能达到最优 因此我被迫对求解器使用时间限制 答案 prob solve p PULP CBC CMD timeLimit 99 我需要将相对百
  • 使用带有哨兵对象的默认参数的 Sphinx python 方法进行记录?

    如果您希望能够允许人们使用以下方式调用某些方法None你必须使用哨兵对象当您定义方法时 sentinel object def foo param1 sentinel 这将允许你打电话foo param1 None 并能够区分像这样的呼叫f
  • 如何开发可测试的 TcpClient / TcpListener 包装器

    我想开发一个可测试的 TcpClient TcpListener 包装器 我希望能够模拟传入和传出的数据 我想这样做是因为我有更高层的组件应该对网络消息做出反应 出于测试原因 我想模拟 网络 它们 有人可以给我一脚朝正确的方向吗 不 不要嘲
  • 重写传单事件

    我尝试重写 boxzoom 事件 如下所示 map on boxzoomend function e console log end 但是 boxzoom 仍然在缩放 我不知道如何停止它并仅在控制台中打印文本 我希望将boxzoom重写为以
  • 放置 new 的返回值与其操作数的强制转换值之间是否存在(语义)差异?

    放置 new 的返回值与其操作数的强制转换值之间是否存在 语义 差异 struct Foo char buffer Foo a new buffer Foo Foo b reinterpret cast
  • 使用 SwiftUI 和 Firestore 使用电子邮件、名字、姓氏进行注册

    我想对用户进行身份验证 并使用用户名 第一个和最后一个 使用 Firestore 创建用户数据库 我可以创建用户 但无法同时创建数据库 这是我的 SessionStore 用于注册和登录 通过注册 我想获取用户名并创建一个数据库 下面没有代
  • 为什么我不应该将 alloc 和 init 分开?

    Objective C 中初始化和分配的正常方法是 NSObject someObject NSObject alloc init 为什么不实行以下内容 NSObject someObject NSObject alloc someObje
  • 如何在CSS中导入字体?

    我想使用一些字体 并且希望它在客户端计算机上没有这种字体的情况下也能工作 我已经这样做了 但它不起作用 font face font family EntezareZohoor2 src url Entezar2 ttf format tr
  • 使用 C# 防止 ListView 中出现重复条目​​?

    我们如何访问添加到的项目ListView 我要做的事情是 将一个项目添加到列表视图中 我想检查要添加到列表视图的项目是否已存在于 ListView 中 我正在使用 C 和 Visual Studio 2005 The ListView类提供
  • 如何在 C++ 中重载 cout 行为?

    我想让 cout 每当我调用它时总是打印附加字符串 上面和下面 这对我来说很奇怪 因为我主要使用 Java 和 C Edit 也许我们可以为 y 字符串定义其他值或类似的值 Example Code include
  • 如何从 Java SSLSocket 访问最终协商的协议和密码? [复制]

    这个问题在这里已经有答案了 我一直致力于尝试组装一个基于 Java 的小型 HTTPS SSL 服务器 主要是为了尝试获得一些可以相当便携地用于我们的测试 诊断目的的东西 基于这里的示例 我得到了这样一个服务器应用程序的工作 http ww
  • 我的自定义 ASP.NET MVC 实体绑定:这是一个好的解决方案吗?

    假设我想允许在页面上选择我们的实体 从下拉列表等 比如说产品 结果我可能会收到这个 public ActionResult SelectedAction Guid productId 但是 我想使用模型绑定程序的功能 因此我编写模型绑定程序
  • 在 XNA 中使用 CreateOrthographicOffCenter

    我正在尝试弄清楚如何在 XNA 中绘制图形 其他人建议了这一点 但在我尝试使用这个之前 如果我创建并使用此相机 并将 LEFT TOP 设置为 0 且 WIDTH 256 和 HEIGHT 240 我渲染到屏幕上的任何内容都将使用这些坐标吗
  • 核心数据继承与不继承

    我在核心数据方面遇到了一些问题 所以我希望有人能够帮助我 第一个问题 我有一个如下所示的数据模型 Entity P A lt gt Entity R C D E F G 我的所有实体都继承自同一实体 P 因为它们需要共同的属性和共同的关系
  • 未找到元素声明

    我有一个简单的 XML 和 XSD 文件 我正在使用 Xerces 生成 h cpp 文件 但是当我运行该应用程序时 出现错误 未找到元素 x books 的声明 我的 XML 文件是
  • 隐藏通过href标签传递的参数

    我正在通过传递参数href标签如下 a href message php toid userid name1 fname name2 lname 当我被重定向到message php 这三个参数在地址栏上可见 如何隐藏这些参数 我碰到 ht
  • C++ template:模板容器的分配器

    在我的 C 模板结构中 我想使用不同的容器类型 这些容器类型使用不同的分配器 例如std vector 和推力 device vector 我需要明确指定分配器 否则我会得到 模板参数数量错误 1 应该是 2 template
  • 有条件的简单下拉列表?

    我正在尝试使用 HTML 编写一个网站 但我有一个问题 我使用带有选项 A 和 B 的下拉列表 但选择其中一个后 我想在同一页面上创建另一个下拉列表和文本字段 并包含不同的问题 例如 如果有人选择 A 那么就会被问到问题 C 和 D 如果有
  • 使用 pip3 安装包时“Python 中的 ssl 模块不可用”

    我已在本地计算机上成功安装 Python 3 4 和 Python 3 6 但无法使用以下命令安装软件包pip3 当我执行时pip3 install
  • 手动将字符从 UTF-8 转换为 ISO-8859-1

    我有字符 如果我看进去这个 UTF 8 表我看到它有十六进制值F6 如果我看统一码表我看到 有索引E0and 16 如果我添加两者 我会得到代码点的十六进制值F6 这是二进制值1111 0110 1 如何从十六进制值中获取F6到指数E0 a