作为标题,我如何将ASCII字符串转换为Java中的UTF-8字符串?如何在Java中将ASCII字符串转换为UTF-8字符串?
谢谢!
编辑:我的情况实际上是我用中文字符串读取的,当我输出它时,都是乱码。我认为这个问题可能在于编码。那么,如何正确地将字符串从乱码转换为正确的语言设置字符?
作为标题,我如何将ASCII字符串转换为Java中的UTF-8字符串?如何在Java中将ASCII字符串转换为UTF-8字符串?
谢谢!
编辑:我的情况实际上是我用中文字符串读取的,当我输出它时,都是乱码。我认为这个问题可能在于编码。那么,如何正确地将字符串从乱码转换为正确的语言设置字符?
Java中不存在“ASCII字符串”或“UTF-8字符串”。当你有一个String
对象时,它只是一系列的UTF-16代码单元。没有记录它是否最初是从使用ASCII或UTF-8解释字节的字节数组中解码出来的。
还要注意的是UTF-8与ASCII向后兼容的,也就是说如果你有代表ASCII编码的文本的字节任何有效的序列,这将被用来表示字节相同序列UTF-8中的相同文本。
Java中不存在ASCII字符串或UTF-8字符串。 ASCII和UTF-8是编码 - 字节数组。
您不需要进行任何转换即可从字符串的ASCII编码转换为字符串的UTF-8编码。任何有效的ASCII码对于同一个字符串也是有效的UTF-8编码。 (反之亦然)。
[如何将字符串转换为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 –
你能扩展你需要什么吗?因为在java中所有的字符串默认是UTF-16。 (感谢Jon Skeet纠正) – ilalex
@ilya:不,所有字符串都是UTF-16代码单元的序列。 –