处理它们时,内存中最优选的unicode字符串格式是什么?为什么?
我正在通过为它生成可执行文件映像来实现编程语言。显然,一个有效的编程语言实现需要一个协议来处理字符串。
我已经考虑过使用动态数组作为字符串的基础,因为它们实现起来非常简单,而且对短字符串非常有效。我不知道以这种方式使用字符串时字符的最佳格式。
答案 0 :(得分:4)
UTF16是使用最广泛的格式。
UTF16优于UTF8的优点是,尽管不那么紧凑,但每个字符的大小都是2字节(16位) - 只要你不使用代理(当坚持使用时) 2字节字符,编码称为UCS-2)。
在UTF8中,只有一小组字符在1字节上编码,其他字符在4字节上。这使得字符处理更不直接,更容易出错。
当然使用Unicode是首选,因为它可以处理国际字符。
答案 1 :(得分:3)
C Python 2.x系列使用UTF-16和UCS-4,具体取决于platform / build /等。
来自python-dev的Here's an interesting discussion关于选择Python 3.0的Unicode内部表示的要求和权衡。虽然这里的内容比我简单描述的更多,但它包括: