|
|
1
10
在UTF-32中,unicode字符始终由4个字节表示,因此解析代码比UTF-16字符串更容易编写,因为在UTF-16中,字符由不同数量的字节表示。在不利的方面,UTF-32聊天机器人会 需要4个字节,如果您主要使用英语字符,这可能会造成浪费。因此,它是一种设计选择,取决于您的需求是使用UTF-16还是UTF-32。 |
|
|
2
8
有些人可能更喜欢处理UTF-32而不是UTF-16,因为处理代理项对几乎总是处理“特殊情况”,而必须处理这些特殊情况意味着您有可能因为错误地处理它们而出现bug(或者更可能是忘记处理它们)。
|
|
3
5
Comparison of the Advantages of UTF-32, UTF-16, and UTF-8
|
|
|
4
3
简短回答:没有。
不那么讽刺的回答:当您更关心索引的速度而不是空间使用,或者作为某种中间格式,或者在对齐问题比缓存问题更重要的机器上,或者。。。 |
|
|
5
3
如果你的文字是 主要地 在英语中,使用utf-8可以节省大量空间,但索引字符不是O(1),因为有些字符占用的空间超过一个字节。
对于非英语文本,UTF-16可能比UTF-8更好,因为在UTF-8中,有些字符占用3个字节,而在utf16中,它们只占用2个字节。 |
|
|
6
3
使用UTF-32,您知道每个字符有4个字节。使用UTF-16,您不知道任何特定字符的长度。
如果您使用的是具有直接内存访问功能的语言(例如C),那么在UTF-32中,此函数可能与一些指针算术一样简单(
但是,如果您使用的是UTF-16,则必须遍历字符串,边走边解码,即O(n)。 |
|
|
7
2
通常,您只需使用底层平台的字符串数据类型/编码,通常是(Windows、Java、Cocoa…)UTF-16,有时是UTF-8或UTF-32。这主要是出于历史原因,;这三种Unicode编码之间几乎没有什么区别:这三种编码都定义良好、快速且健壮,并且都可以对每个Unicode码点序列进行编码。UTF-32的独特特性是固定宽度编码(意味着每个代码点由一个代码单元表示)在实践中几乎没有用处:内存管理层需要了解代码单元的数量和宽度,用户对抽象字符和图形感兴趣。正如Unicode标准所提到的,Unicode应用程序无论如何都必须处理组合字符、连字等,代理项对的处理,尽管在概念上不同,但可以在相同的技术框架内完成。
|
|
|
Boltu · pandas从url返回的值是什么? 1 年前 |
|
|
trystine · 试图运行CausalNex错误UnicodeEncodeError:“charmap”编解码器无法对位置263607-263621中的字符进行编码:字符映射到<undefined> 2 年前 |
|
|
Danny Coleiro · 向文本字符串添加不可见字符 2 年前 |