用Java将ASCII转换为UTF-16
我能够使用以下代码找出如何将Unicode字符串转换为ASCII字符串。(学分在代码中) 现在,我的问题和好奇心战胜了我。我尝试过谷歌搜索,因为我对Java没有最好的了解 我的问题是,是否可以将ASCII字符串转换为UTF格式?尤其是UTF-16。(我之所以说UTF-16,是因为我知道UTF-8与ASCII有多相似,因此不必从ASCII转换为UTF-8)用Java将ASCII转换为UTF-16,java,unicode,encoding,utf-8,ascii,Java,Unicode,Encoding,Utf 8,Ascii,我能够使用以下代码找出如何将Unicode字符串转换为ASCII字符串。(学分在代码中) 现在,我的问题和好奇心战胜了我。我尝试过谷歌搜索,因为我对Java没有最好的了解 我的问题是,是否可以将ASCII字符串转换为UTF格式?尤其是UTF-16。(我之所以说UTF-16,是因为我知道UTF-8与ASCII有多相似,因此不必从ASCII转换为UTF-8) 提前谢谢 Java字符串使用UTF-16作为内部格式,它与String类无关。您将仅在两种情况下看到差异: 将字符串作为字节数组检查时(请参见
提前谢谢 Java字符串使用UTF-16作为内部格式,它与
String
类无关。您将仅在两种情况下看到差异:
字符串作为字节数组检查时(请参见下文)。这在C语言中一直都会发生,但在更现代的语言中,字符串和字节数组(例如Java或Python3.x)之间的区别是不正确的
String data = "TEST";
OutputStream output = new FileOutputStream("filename.txt");
output.write(data.getBytes("UTF-16"));
output.close();
生成的文件将包含:
0000000: feff 0054 0045 0053 0054 ...T.E.S.T
它是UTF-16,开头有BOM字节。java字符串在内部使用UTF-16,而不是UTF-8。这让我很好地理解了编码的过程。是的,UTF-16。更正。
0000000: feff 0054 0045 0053 0054 ...T.E.S.T