Java字符串编码(UTF-8)

我遇到了这行遗留代码,我试图找出这些遗留代码:

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

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

这与以下内容有何不同?

String newString = oldString;

ps:只是要澄清一下,是的,我知道Joel

Spolsky撰写的关于编码的出色文章!

回答:

这可能是很复杂的方式

String newString = new String(oldString);

这缩短了String,而所使用的基础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) 的全部内容, 来源链接: utcz.com/qa/408524.html

回到顶部