UTF 编码有非字符代码,我需要处理这些异常。我知道有很多图书馆可以做到这一点,但我认为我需要了解基本原则。
将 Unicode 代码点转码为 UTF 或 UCS 编码/从 UTF 或 UCS 编码转码时我应该注意什么?我认为每种编码都有不同的规则,但三个应该是一个简单的原则。我想知道。
更新
我发布了这个问题,因为我试图从NSString
. NSString
仅支持 UTF-16 方式的 API 进行字符处理,因此我需要执行额外的处理以获取实际的代码点(这实际上是有意义的)。我的程序应该
- 正确提升代理对字符
- 或禁止它们进行可靠的字符处理。
但问题是我不确定代理对是 UTF-16 上唯一需要关心的东西。我认为应该有更多的东西需要关心,我想知道这一点。如果可能的话,也可以使用其他编码。当然,前提是它足够简单处理。如果它非常复杂,我将只使用libICU
.
我知道libICU
会给我这些功能,但目前对我来说感觉有点过度设计。如果我知道基本规则(例如,“代理对是唯一需要关心的事情!”),至少禁止不受支持的字符应该非常容易和简单。