2012-06-23 63 views
3

作为标题,我如何将ASCII字符串转换为Java中的UTF-8字符串?如何在Java中将ASCII字符串转换为UTF-8字符串?

谢谢!

编辑:我的情况实际上是我用中文字符串读取的,当我输出它时,都是乱码。我认为这个问题可能在于编码。那么,如何正确地将字符串从乱码转换为正确的语言设置字符?

+0

[如何将字符串转换为Java中的UTF8字节数组和字符串](http://stackoverflow.com/questions/88838/how-to-convert-strings-to-and-from-utf8-byte -array-in-java)和http://stackoverflow.com/questions/285228/how-to-convert-utf-8-to-us-ascii-in-java –

+0

你能扩展你需要什么吗?因为在java中所有的字符串默认是UTF-16。 (感谢Jon Skeet纠正) – ilalex

+3

@ilya:不,所有字符串都是UTF-16代码单元的序列。 –

回答

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编码。 (反之亦然)。