提问人:Kevin Patel 提问时间:9/3/2023 最后编辑:Kevin Patel 更新时间:9/3/2023 访问量:81
UTF-8 内容在 Java 中是否格式错误
Does UTF-8 content could be malformed in Java
问:
我正在尝试在 java 中创建一个测试用例来测试
decoder.onMalformedInput(CodingErrorAction.REPLACE);
decoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
我需要UTF_8字符集中的一些字符来测试它们。
答:
2赞
Basil Bourque
9/3/2023
#1
TL的;博士
UTF-8 几乎可以表示地球上的任何字符,即 Unicode 中的所有字符。
如果您要询问 UTF-8 内容示例是否格式不正确,是的,可以。以违反维基百科中描述的规则的方式放下一些位。我认为这会触发你的,但我没有尝试过。onMalformedInput
Unicode 中大多数可能的码位尚未分配给任何字符。其中一些被留作“私人使用”(克林贡语等)。其中一些是保留给将来使用的。也许包含任何保留供将来使用的代码点的 UTF-8 编码文本会触发您的 ,但我没有尝试过。onUnmappableCharacter
详
字符集未包含的任何字符UTF_8
你混淆了两件不同的事情:
- 字符集是字符的集合,每个字符由一个称为代码点的分配编号标识。此集合可能包含一种人类语言或多种人类语言的字符。
- 字符编码是一种通过记录特定字符集中字符的码位和字节来表示该文本集的某些文本的方法。
Unicode 是一个字符集,旨在表示所有现存的和最具学术意义的死语言的字符。Unicode 是所有其他字符集组合的超集。目前,Unicode 15 已识别 149,186 个字符。每个字符都被分配了一个代码点编号,范围从零到一百万多一点。
UTF-8 是一种字符编码,它使用一个或多个八位字节来表示每个分配的数字。UTF-8 可以表示 Unicode 可分配的超过 100 万个可能的数字中的任何一个。
因此,您很难找到地球上大多数民族使用的任何字符,但尚未在Unicode中列出。所有这些字符都可以用 UTF-8 编码。
评论
char