是否有一个 Unicode 字符串在转换为小写时会变长?
Is there a Unicode string which gets longer when converted to lowercase?
字符串 'ß'
在转换为大写时变长(以 Unicode 代码点衡量)(变为 'SS'
)。
有没有类似的转小写变长的字符串?
http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt
这里有些字符需要用多个字节来处理。这些似乎主要涉及字母 I 和 J 的老旧。
如果我没理解错的话,这个 Java 发现大写版本比原来的
for (char chr = 0; chr < Character.MAX_VALUE; chr++) {
String str = String.valueOf(chr);
String upper = str.toUpperCase();
if (upper.length() > 1) {
System.out.println(String.format("%s => %s (%d)", str,
Arrays.toString(upper.toCharArray()), upper.length()));
}
}
输出类似于您的原始示例的内容
ß => [S, S] (2)
ʼn => [ʼ, N] (2)
ǰ => [J, ̌] (2)
ΐ => [Ι, ̈, ́] (3)
如果我将其更改为 toLowerCase(),则只有一个结果
İ => [i, ̇] (2)
字符串 'ß'
在转换为大写时变长(以 Unicode 代码点衡量)(变为 'SS'
)。
有没有类似的转小写变长的字符串?
http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt
这里有些字符需要用多个字节来处理。这些似乎主要涉及字母 I 和 J 的老旧。
如果我没理解错的话,这个 Java 发现大写版本比原来的
for (char chr = 0; chr < Character.MAX_VALUE; chr++) {
String str = String.valueOf(chr);
String upper = str.toUpperCase();
if (upper.length() > 1) {
System.out.println(String.format("%s => %s (%d)", str,
Arrays.toString(upper.toCharArray()), upper.length()));
}
}
输出类似于您的原始示例的内容
ß => [S, S] (2)
ʼn => [ʼ, N] (2)
ǰ => [J, ̌] (2)
ΐ => [Ι, ̈, ́] (3)
如果我将其更改为 toLowerCase(),则只有一个结果
İ => [i, ̇] (2)