【发布时间】:2011-08-09 08:10:37
【问题描述】:
我已经看到了一些非常聪明的代码,用于在 Unicode 代码点和 UTF-8 之间进行转换,所以我想知道是否有人拥有(或喜欢设计)这个。
- 给定一个 UTF-8 字符串,相同字符串的 UTF-16 编码需要多少字节。
- 假设 UTF-8 字符串已经过验证。它没有 BOM,没有过长的序列,没有无效的序列,是空终止的。不是CESU-8。
- 必须支持带代理的完整 UTF-16。
具体来说,我想知道是否有捷径可以知道何时需要代理对,而无需将 UTF-8 序列完全转换为代码点。
我见过的最好的 UTF-8 到代码点代码使用矢量化技术,所以我想知道这是否也可以在这里。
【问题讨论】:
-
“无无效序列”是否包括“无 UTF-8 编码的代理值”?
-
@Joachim:是的。 “它不是 CESU-8”。
-
啊,我明白了,我不知道这个词。
-
@Karl:因为我想要一个理想的低级 C 解决方案。我想鼓励对系统函数调用的指针。特别是我想要类似的东西:daemonology.net/blog/2008-06-05-faster-utf8-strlen.html(但也欢迎讨论其他语言或独立于语言的想法)
标签: c algorithm utf-8 utf-16 unicode-string