ASCII 和扩展 ASCII 以及 Unicode 兼容性固有的困难?

2024-02-18

ASCII 和扩展 ASCII 固有的困难是什么?Unicode 如何克服这些困难?

有人可以向我解释一下 unicode 兼容性吗?

与 Unicode 相关的术语,如平面、基本多语言平面 (BMP)、补充多语言平面 (SMP)、补充表意平面 (SIP)、补充特殊平面 (SSP) 和专用平面 (PUP) 的含义是什么。

我发现所有这些词都很令人困惑


ASCII

ASCII http://en.wikipedia.org/wiki/ASCII或多或少是有史以来第一个字符编码。在一个字节非常昂贵、1MHz 速度极快的时代,只有那些古老的计算机上出现的字符美国打字机 http://www.google.com/images?q=us%20typewriter(以及当今普通的美国国际键盘)均由 ASCII 字符编码的字符集覆盖。这包括完整的拉丁字母(A-Z,小写和大写形式)、数字(0-9)、词汇控制字符(空格、点、逗号、冒号等)和一些特殊字符(at 符号) 、尖号、美元符号等)。所有这些字符填满了 7 位空间,即一个字节提供的空间的一半,总共 128 个字符。

扩展 ASCII 和 ISO 8859

随后该字节的剩余位用于扩展 ASCII http://en.wikipedia.org/wiki/Extended_ascii总共可容纳 255 个字符。剩余的大部分空间被特殊字符使用,例如变音字符 http://en.wikipedia.org/wiki/Diacritic和线条画字符。但因为每个人都以自己的方式使用剩余的房间(IBM、Commodore、大学、组织等),它不可互换。最初使用编码 X 编码的字符将显示为Mojibake http://en.wikipedia.org/wiki/Mojibake当它们使用不同的编码 Y 进行解码时。后来 ISO 提出了 8 位 ASCII 扩展的标准字符编码定义,从而产生了已知的ISO 8859 http://en.wikipedia.org/wiki/ISO/IEC_8859基于 ASCII 之上的字符编码标准,例如 ISO 8859-1,因此它们具有更好的互换性。

Unicode

8位对于使用拉丁字母的语言来说可能已经足够了,但是对于世界上其余的非拉丁语言来说肯定是不够的,比如中文、日文、希伯来文、西里尔文、梵文、阿拉伯文等等,更不用说包含了他们all仅 8 位。他们开发了自己的非 ISO 字符编码这又是不可互换的,如国标、BIG5、JIS、KOI、MIK、TSCII等。最终建立了基于 ISO 8859-1 的新字符编码标准,以涵盖世界上使用的任何字符,以便它在任何地方都可以互换: Unicode http://en.wikipedia.org/wiki/Unicode。它提供了超过 100 万个字符的空间,目前其中约 10% 已被填充。这UTF-8 http://en.wikipedia.org/wiki/UTF-8字符编码基于 Unicode。

统一码平面

Unicode 字符分为十七类planes http://en.wikipedia.org/wiki/Unicode_plane,每个提供 65536 个字符(16 位)的空间。

  • 平面 0:基本多语言平面 (BMP) http://en.wikipedia.org/wiki/Basic_Multilingual_Plane#Basic_Multilingual_Plane,它包含了世界上已知的所有现代语言的字符。
  • 飞机 1:补充多语言飞机 (SMP) http://en.wikipedia.org/wiki/Supplementary_Multilingual_Plane#Supplementary_Multilingual_Plane,它包含历史语言/文字以及多语言音乐和数学符号。
  • 飞机 2:补充具体平面 (SIP) http://en.wikipedia.org/wiki/Supplementary_Ideographic_Plane#Supplementary_Ideographic_Plane,它包含“特殊”CJK(中文/日文/韩文)字符,其中数量相当多,但在现代写作中很少使用。 “普通”CJK 字符已存在于 BMP 中。
  • 飞机 3-13:unused.
  • 14 号飞机:补充专机 (SSP) http://en.wikipedia.org/wiki/Supplementary_Special-purpose_Plane#Supplementary_Special-purpose_Plane,到目前为止它只包含一些标签字符和字形变体选择器。标签字符当前已弃用,将来可能会被删除。字形变体选择器将用作添加到现有字符的元数据,这反过来又可以指示读者为字符提供稍微不同的字形。
  • 15-16 号飞机:私人飞机 (PUP) http://en.wikipedia.org/wiki/Private_Use_Area#Private_use_characters,它为(主要)组织或用户倡议在标准中包含自己的特殊字符或符号提供了空间,以便它在任何地方都可以互换。例如Emoji http://en.wikipedia.org/wiki/Emoji(日式笑脸/表情符号)。

通常,您只对 BMP 感兴趣,并在整个应用程序中使用 UTF-8 编码作为标准字符编码。

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

ASCII 和扩展 ASCII 以及 Unicode 兼容性固有的困难? 的相关文章

  • raku 可以避免这个 Malformed UTF-8 错误吗?

    当我运行这个 raku 脚本时 my proc run tree du out proc out slurp close say 我在 MacOS 上遇到此错误 Malformed UTF 8 near bytes ef b9 5c 而不是
  • 验证假名输入

    我正在开发一个允许用户输入日语字符的应用程序 我试图想出一种方法来确定用户的输入是否是日语假名 平假名 片假名或汉字 应用程序中的某些字段不适合输入拉丁文文本 我需要一种方法将某些字段限制为仅限汉字或仅限片假名等 该项目使用UTF 8编码
  • Python“非规范化”unicode 组合字符

    我正在寻找标准化 python 中的一些 unicode 文本 我想知道是否有一种简单的方法可以在 python 中获得组合 unicode 字符的 非规范化 形式 例如如果我有序列u o xaf i e latin small lette
  • 如何检测 Java 字符串中的 unicode 字符?

    假设我有一个包含 的字符串 我如何找到所有这些 un icode 字符 我应该测试他们的代码吗 我该怎么做呢 例如 给定字符串 A X 我想将其转换为 AYXY 我想对其他 unicode 字符做同样的事情 并且我不想将它们存储在某种翻译映
  • 如何在 Android TextView 中使用土耳其语字符,如“ş ç ı ö”?

    我想在 android TextView 中写入 ile 但它没有正确绘制 怎样才能使用这样的字符呢 例如 我将文本视图设置为 ile 它显示为 ile 我怎样才能解决这个问题 尝试以下方法 看看是否有帮助 source http grou
  • 经典的asp字符编码

    我在经典 asp 网站中遇到西班牙字符问题 用户可以在 aspx 页面上的表单中提交他们的姓名 地址 然后 aspx 页面将 ajax post 发送到经典的 asp 页面 它所做的所有操作都存储在我们的 Sql 2008 DB 中 我可以
  • 如何在 SVG 中显示 unicode?

    以 SVG 格式存储在数据库中的信息 如果数据包含文本 它将显示为 Unicode 有必要在浏览器中正确显示 SVG 文件
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 执行 Boyer-Moore 模式匹配时是否必须考虑编码?

    我即将实现 Boyer Moore 模式匹配算法的变体 具体来说是星期日算法 我问自己 我的字母表大小是多少 它是否取决于编码 可能的字符数 或者我可以假设我的字母表由 256 个符号组成 一个字节可以表示的符号数 在许多其他情况下 将字符
  • emacs 中 ansi term 中的奇怪字符

    我编写了一个 C 程序 当我在 ansi term 中使用 g 编译它时 显示了一些奇怪的字符 如果需要 错误是我没有声明变量 n 我该如何纠正这个问题 啊 测试了这个 setq locale coding system utf 8 set
  • .NET 正则表达式可匹配任何语言的任何类型的字母

    我可以使用哪种正则表达式来匹配 允许 任何语言的任何类型的字母 我需要匹配任何字母 包括任何变音符号 例如 并排除任何类型的符号 数学符号 货币符号 装饰符号 方框图字符等 和标点符号 我正在使用 ASP NET MVC 2 和 NET 4
  • PowerShell 中的 SVN 输出编码

    我正在尝试在 PowerShell 脚本内的字符串中捕获 SVN 日志 在命令行上 输出的编码是正确的 但是当我将其捕获到字符串中时 它就不是正确的 PS C sandbox gt svn log r1804 https myserver
  • php 区分中文和英文字符

    如何区分中文和英文字符for loops 这是代码
  • 控制台应用程序中使用 Unicode 字符的 _tprintf

    我正在从 Unicode 构建的控制台应用程序 使用 C 和 Visual Studio 2008 执行这个简单的输出 此代码旨在在 Windows 上运行 tprintf L Some sample string n 一切正常 但是如果我
  • 没有窗口的 GetFontUnicodeRanges

    有机会打电话吗GetFontUnicodeRanges没有窗户 例如 它可能是不允许与桌面交互的 Windows 服务 目前我正在使用控制台应用程序对此进行测试 program UnicodeConsoleOutput APPTYPE CO
  • 如何在 Linux 中重新添加 unicode 字节顺序标记?

    我有一个相当大的 SQL 文件 它以 FFFE 的字节顺序标记开头 我使用 unicode 感知的 linux 分割工具将此文件分割成 100 000 行块 但是当将这些传递回窗口时 它确实not与第一个部分以外的任何部分一样 只是它具有
  • 将 pandas DataFrame 写入 unicode 中的 JSON

    我正在尝试将包含 unicode 的 pandas DataFrame 写入 json 但是内置的 to json函数对字符进行转义 我该如何解决 Example import pandas as pd df pd DataFrame a
  • Python 删除额外的特殊 unicode 字符

    我正在 python 中处理一些文本 它内部已经采用 unicode 格式 但我想删除一些特殊字符并用更标准的版本替换它们 我目前有一条看起来像这样的线路 但它变得越来越复杂 我发现它最终会带来更多麻烦 tmp infile lower r
  • 使用 python3 查找表情符号的宽度

    我尝试使用 python 中的模式打印字母 A def printA length height symbol a for i in range length for i in range height for i in range hei
  • android中如何将字符串转换为unicode

    我正在解析一些unicodes from json to my android应用程序 API 给出unicodes像这样的图标 ue600 当我将这个unicode直接添加到textview like textview setText u

随机推荐