x86 - 进程内存中的 Unicode 字符串

标签 x86 language-design language-implementation

在处理内存中的 unicode 字符串时,最首选的格式是什么?为什么?

我正在通过为其生成可执行文件镜像来实现一种编程语言。显然,一个有效的编程语言实现需要一个处理字符串的协议(protocol)。

我考虑过使用动态数组作为字符串的基础,因为它们实现起来非常简单,并且对于短字符串非常有效。以这种方式使用字符串时,我只是不知道字符的最佳可能格式。

最佳答案

UTF16 是使用最广泛的格式。

UTF16的优势|超过 UTF8是这样的,尽管不那么紧凑,但每个字符都有 2 字节(16 位)的恒定大小 - 只要您不使用代理项(当坚持使用 2 字节字符时,编码称为 UCS-2 )。

在 UTF8 中,只有一小部分字符编码为 1 个字节,其他字符则为 4 个字节。这使得字符处理不那么直接并且更容易出错。

当然首选使用 Unicode,因为它可以处理国际字符。

关于x86 - 进程内存中的 Unicode 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/391295/

相关文章:

compilation - 字节码栈与三个地址

c++ - 为什么 std::same_as 以如此奇怪的方式实现?

exception - Ada 83 异常是否包括资源清理?

assembly - 什么是学习MASM代码(不是HLA)的好资源?

assembly - 如何将 Intel 80386 机器代码转换为汇编语言?

scala - scala.Singleton 是纯编译器小说吗?

C99 - 为什么 false 和 true 定义为 0 和 1 而不是 ((bool)0) 和 ((bool)1)?

assembly - LEA 执行有符号或无符号算术吗?

assembly - 如何使用 XACQUIRE、XRELEASE Hardware Lock Elision (HLE) 前缀提示?

php - PHP 中 "associate"和 "indexed"数组之间的实际区别是什么?