我有一个“ñ”字符的字符串,我有一些问题。我需要将这个字符串编码为UTF-8编码。我试过这种方法,但行不通:

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

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


当前回答

你可以试试这种方法。

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

其他回答

这解决了我的问题

    String inputText = "some text with escaped chars"
    InputStream is = new ByteArrayInputStream(inputText.getBytes("UTF-8"));

你可以试试这种方法。

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

我已经使用下面的代码编码特殊字符通过指定编码格式。

String text = "This is an example é";
byte[] byteText = text.getBytes(Charset.forName("UTF-8"));
//To get original string from byte.
String originalString= new String(byteText , "UTF-8");

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

Java String在内部总是用UTF-16编码——但是你真的应该这样想:编码是一种在字符串和字节之间转换的方式。

如果你有编码问题,当你有字符串的时候,就来不及修正了。您需要修复从文件、DB或网络连接中创建字符串的位置。