java对象转字符串,转换结果中文为???
时间: 2023-07-12 22:49:58 浏览: 192
java将字符串中数字转换为中文大写,在输出字符串
Java对象转字符串,如果转换结果中文为???,很可能是因为编码不匹配。在Java中,字符串默认采用Unicode编码,而在输出时,如果不指定输出编码,会采用操作系统的默认编码,如果操作系统默认编码与Java字符串编码不匹配,就会出现中文为???的情况。
解决方法是,在输出字符串时,指定输出编码,例如:
```java
String str = "中文字符串";
byte[] bytes = str.getBytes("UTF-8"); // 将字符串转换为UTF-8编码的字节数组
String newStr = new String(bytes, "UTF-8"); // 将字节数组转换为UTF-8编码的字符串
System.out.println(newStr); // 输出字符串时指定编码
```
在这个例子中,我们将字符串转换为UTF-8编码的字节数组,并将字节数组转换为UTF-8编码的字符串,然后在输出字符串时,指定编码为UTF-8,就可以保证输出结果中文不为???了。
需要注意的是,如果字符串中包含非ASCII字符(如中文、日文、韩文等),在转换编码时,需要使用支持这些字符集的编码。常见的编码包括UTF-8、GBK、GB2312、ISO-8859-1等。
阅读全文