gpt4 book ai didi

html - 为什么 HTML 对 2 字节和 3 字节字符的处理方式相同,但 4 字节字符不同?

转载 作者:行者123 更新时间:2023-12-01 04:55:02 25 4
gpt4 key购买 nike

我正在为一个网站做一些 GUI 工作,并对一些文本输入使用“maxlength”属性,其中一些可能包含 Unicode 字符。

假设我有一个 maxlength = 50 的文本字段,我用 2 字节的 Unicode 字符 (UTF-16) 填充它。我可以在文本字段中输入 50 个字符。

我也可以对 3 字节字符执行相同的操作。其中 50 个。

但是,我只能在该字段中获得 25 个 4 字节的字符。按理说,既然是2倍的字节数,为什么用3字节的字符还是能正常响应呢?如何处理额外的字节?

最佳答案

Unicode 字符通常可以用 UTF-8、UTF-16 或 UTF-32 ( see their faq ) 编码。你对 2、3 和 4 字节字符的使用告诉我你是从 UTF-8 的角度工作的。

然而,maxlength 属性是defined as the maximum number of UTF-16 code units ,而不是字节数。每个 UTF-16 编码单元是两个字节。

一个 2 字节的 UTF-8 字符将是一个单一的 UTF-16 代码单元。一个 3 字节的 UTF-8 字符也将是一个单一的 UTF-16 代码单元。但是,一个 4 字节的 UTF-8 字符代表一个大于 0xFFFF 的 Unicode 字符。 UTF-16 将其表示为两个代码单元(称为代理对,请参阅上面链接的常见问题解答)。

关于html - 为什么 HTML 对 2 字节和 3 字节字符的处理方式相同,但 4 字节字符不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60380658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com