Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
X86 进程内存中的Unicode字符串_X86_Language Design_Language Implementation - Fatal编程技术网

X86 进程内存中的Unicode字符串

X86 进程内存中的Unicode字符串,x86,language-design,language-implementation,X86,Language Design,Language Implementation,处理unicode字符串时,内存中最首选的unicode字符串格式是什么?为什么 我正在通过生成一个可执行文件映像来实现一种编程语言。显然,工作编程语言实现需要处理字符串的协议 我考虑过使用动态数组作为字符串的基础,因为它们实现起来非常简单,对于短字符串也非常有效。以这种方式使用字符串时,我不知道字符的最佳格式。UTF16是使用最广泛的格式 over的优点是,尽管不太紧凑,但每个字符都有一个2字节(16位)的恒定大小-只要不使用代理(当坚持使用2字节字符时,将调用编码) 在UTF8中,只有一小部

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

我正在通过生成一个可执行文件映像来实现一种编程语言。显然,工作编程语言实现需要处理字符串的协议


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

UTF16是使用最广泛的格式

over的优点是,尽管不太紧凑,但每个字符都有一个2字节(16位)的恒定大小-只要不使用代理(当坚持使用2字节字符时,将调用编码)

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


当然,使用Unicode是首选,因为它能够处理国际字符。

C Python 2.x系列使用UTF-16和UCS-4,具体取决于平台/构建/等

从python dev了解在为python 3.0选择Unicode内部表示时的要求和权衡。虽然那里的内容比我简单描述的要多,但它包括:

  • 讨论外部接口(恒定时间切片、有效实现.lower、.islower等)
  • 外部要求(GTK采用UTF-8字符串,QT采用UTF-16和UCS-4字符串,Windows采用UT-16字符串等)
  • 它指向Unicode数据的其他实现(例如QT)
  • 它讨论了重要的用例(与外部接口密切相关)
  • 等等

Unicode有1112064个有效代码点,因此。根据维基百科的说法,UTF-16的单块子集确实是不够的:“在Unicode 9.0中,一些现代的非拉丁亚洲、中东和非洲脚本不属于这个范围,大多数表情符号也不属于这个范围。”