UTF-32和UCS-4有什么区别?

Vir*_*721 21 string unicode encoding char utf

UTF-32和UCS-4有什么区别?是不是UTF-32应该是固定宽度的编码?

小智 16

Unicode标准版本8.0,附录C规定:

UCS-4代表"以4个八位字节编码的通用字符集."现在它被简单地视为UTF-32的同义词,并被认为是10646中字符表示的规范形式.


Chr*_*rdt 10

UTF-32已经开始作为一个子集UCS-4.现在它是相同的,只是UTF-32标准有额外的Unicode语义.查看维基百科的详细信息:

原始的ISO 10646标准定义了一种称为UCS-4的31位编码形式,其中通用字符集(UCS)中的每个编码字符由0和十六进制之间的整数的代码空间中的32位友好代码值表示. 7FFFFFFF.

由于实际上只使用了17个平面,因此所有当前代码点都在00x10FFFF之间.UTF-32是UCS-4的子集,仅使用此范围.由于JTC1/SC2/WG2的原则和程序文件规定所有未来的字符分配将限制在BMP或前14个补充平面,UTF-32将能够代表所有Unicode字符.因此,UCS-4和UTF-32现在完全相同,只是UTF-32标准具有额外的Unicode语义.

但是,我不完全确定,additional Unicode semantics意味着什么.也许有人可以提供更好的答案.

  • "额外的Unicode语义"究竟是什么意思? (13认同)
  • 听起来像 UCS-4 = [0,0x7FFFFFFF] 而 UTF-32 = [0,0x10FFFF]。两者都表示为 32 位,但 UTF-32 进一步限制了合法值的范围。 (4认同)
  • “附加 Unicode 语义”是指 Unicode 在代码点之上添加的额外属性,例如双向性、排序规则、形式规范化等。Unicode 的某些功能已在技术上仅支持 UCS 的软件中实现,但这些都是扩展部分实现了 Unicode。 (3认同)