使用 Unicode 的 ASCII 或 ANSI (UTF-16)

ASCII or ANSI with Unicode (UTF-16)

提问人:DannyDDog 提问时间:11/2/2022 最后编辑:Thomas DickeyDannyDDog 更新时间:4/1/2023 访问量:244

问:

我是一个非常愚蠢的项目经理,我有一个客户要求我们以 ASCII 或 ANSI 编码格式发送。

我们的程序员使用过Unicode(UTF-16),所以我的问题是Unicode(UTF-16)是否与ASCII或ANSI兼容?还是我理解不正确?我们是要改变编码还是?

我们还没有尝试过任何东西。

编码 ASCII UTF-16 ANSI

评论


答:

0赞 Doug Moore 11/2/2022 #1

简而言之:ASCII 编码包含 128 个字符。ANSI 编码包含 256 个字符。UTF-16 编码可容纳 1,112,064 个字符的代码。有一些细微差别,例如用于存储每个字符的字节,但我认为这与这里无关。

您当然可以将 UTF-16 文档转换为 ANSI 或 ASCII 编码,但任何超出其规范的字符都将丢失(可能分别转换为第 128 或第 256 个字符,或某种 null 字符)。

对于您来说,作为经理,有一些问题。至少:

  1. 为什么客户端需要这种特定的编码?可以以其他方式容纳吗?
  2. 数据中是否有任何字符超出了 ASCII/ANSI 的范围。大多数(所有)编程语言都提供了一种方法来检索字符的整数表示形式,并确定它是否超出了所需编码的范围。这可以用来发现与所需编码不兼容的字符存在多少个实例。

评论

1赞 Joachim Sauer 11/2/2022
同样重要的是要注意,“ANSI”并不能唯一标识任何单一编码,因此,如果这是他们想要走的路径,则需要选择一个或询问客户他们需要哪一种。但是,如果他们要求 ANSI,这不是一个有希望的开始,因为这表明他们不知道自己需要什么