gpt4 book ai didi

Java 字符串编码 (UTF-8)

转载 作者:太空狗 更新时间:2023-10-29 22:33:33 24 4
gpt4 key购买 nike

我遇到了这行遗留代码,我正在努力弄清楚:

String newString = new String(oldString.getBytes("UTF-8"), "UTF-8"));

据我了解,它是使用相同的字符集进行编码和解码。

这与下面的有何不同?

String newString = oldString;

是否存在两条线输出不同的情况?

附注:澄清一下,是的,我知道 excellent article on encoding by Joel Spolsky !

最佳答案

这可能会很复杂

String newString = new String(oldString);

这缩短了字符串,因为使用的底层 char[] 更长。

但更具体地说,它将检查每个字符是否可以使用 UTF-8 编码。

您可以在字符串中包含一些无法编码的“字符”,这些字符将变成 ?

\uD800 到\uDFFF 之间的任何字符都无法编码​​,会变成'?'

String oldString = "\uD800";
String newString = new String(oldString.getBytes("UTF-8"), "UTF-8");
System.out.println(newString.equals(oldString));

打印

false

关于Java 字符串编码 (UTF-8),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8854106/

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