【发布时间】:2010-10-20 06:13:09
【问题描述】:
我想知道为什么我们没有一些字符串类来表示一串 Unicode 字素簇而不是代码点或字符。在我看来,在大多数应用程序中,程序员在必要时访问字素的组件比必须从代码点组织它们更容易,即使只是为了避免在“中间字素”中随意破坏字符串,这似乎也是必要的(至少在理论上)。在内部,字符串类可能使用可变长度编码,例如 UTF-8、UTF-16,或者在这种情况下,甚至 UTF-32 也是可变长度的;或为所有这些实现子类(并可选地在运行时配置选择,以便不同的语言可以使用它们的最佳编码)。但是,如果程序员在检查字符串时可以“看到”字素单元,那么字符串处理代码通常不会更接近于实现正确性,并且没有太多额外的复杂性吗?
参考资料:
Characters and Combining Marks
Unicode implementer's guide part 4: grapheme breaking
UnicodeString Class Reference
Enumerating a string by grapheme instead of character
Strings and character encoding in C++
【问题讨论】:
-
因为没写?
-
我想知道这种问题是否会更好地放在programmers.stackexchange.com
-
@John, nassar:我认为 John 的建议对这个问题来说是一个很好的建议
-
是的,听起来不错。但我认为,如果每个人都还在使用代码点,那肯定是有充分理由的——我想知道原因是什么。这是一个较早问题的后续,试图找到一个好的经验法则来正确和轻松地进行字符串处理。
标签: string unicode character-encoding