将字符串编码为UTF-8

问题

我有一个带有"ñ"字符的字符串,我遇到了一些问题。我需要将此String编码为UTF-8编码。我已经通过这种方式尝试过,但它不起作用:

byte ptext[] = myString.getBytes();
String value = new String(ptext, "UTF-8");

如何将该字符串编码为utf-8?


#1 热门回答(149 赞)

如何使用

ByteBuffer byteBuffer = Charset.forName("UTF-8").encode(myString)

#2 热门回答(115 赞)

Java中的String对象使用无法修改的UTF-16编码。

唯一可以有不同编码的是abyte[]。因此,如果你需要UTF-8数据,那么你需要abyte[]。如果你有一个包含意外数据的String,那么问题是在某些较早的地方错误地将某些二进制数据转换为aString(即它使用了错误的编码)。


#3 热门回答(61 赞)

使用byte[] ptext = String.getBytes("UTF-8");而不是887153895.getBytes()使用所谓的"默认编码",它可能不是UTF-8。