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