如何在Java中将ASCII字符串转换为UTF-8字符串?

4

正如标题所述,在Java中如何将ASCII字符串转换为UTF-8字符串?

谢谢!

编辑:我的情况是读入了一个中文字符串,但输出时却是一堆乱码。我认为问题可能出在编码上。那么,我该如何正确地将字符串从乱码转换为正确的字符集呢?


可能是重复问题: 如何在Java中将字符串转换为UTF8字节数组并从中转换 和 https://dev59.com/rXVC5IYBdhLWcg3wdw65 - Kazekage Gaara
你能详细说明你需要什么吗?因为在Java中,默认情况下所有字符串都是UTF-16编码。(感谢Jon Skeet的纠正) - ilalex
3
不,所有字符串都是由UTF-16代码单元序列组成的。 - Jon Skeet
1
(但是Ilya关于你的问题不清楚的观点是正确的。) - Jon Skeet
2个回答

4
在Java中,没有所谓的“ASCII字符串”或“UTF-8字符串”。当你拥有一个String对象时,它只是一系列UTF-16代码单元。无法确定它最初是使用ASCII还是UTF-8解码字节数组而来。
此外,请注意UTF-8兼容ASCII,因为如果你有任何有效的表示ASCII编码文本的字节序列,那么这就是用于表示相同文本的UTF-8序列。

2

Java中不存在ASCII字符串或UTF-8字符串。ASCII和UTF-8是编码方式——字节数组。

从字符串的ASCII编码转换为字符串的UTF-8编码不需要进行任何转换。对于同一字符串,任何有效的ASCII也是有效的UTF-8编码。(反之则不成立)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接