我有一个带有"ñ“字符的字符串,我对它有一些问题。我需要将这个字符串编码为UTF-8编码。我试过用这种方法,但不起作用:
byte ptext[] = myString.getBytes();
String value = new String(ptext, "UTF-8");
如何将该字符串编码为utf-8?
发布于 2011-04-20 19:58:09
Java中的String
对象使用不能修改的UTF16编码。
唯一可以使用不同编码的是byte[]
。因此,如果您需要UTF-8数据,那么就需要一个byte[]
。如果你有一个包含意外数据的String
,那么问题出在之前的某个地方,它错误地将一些二进制数据转换为String
(即,它使用了错误的编码)。
发布于 2011-04-20 19:57:53
如何使用
ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(myString)
发布于 2013-11-27 20:52:43
在Java7中,您可以使用:
import static java.nio.charset.StandardCharsets.*;
byte[] ptext = myString.getBytes(ISO_8859_1);
String value = new String(ptext, UTF_8);
与getBytes(String)
相比,它的优点是不需要声明throws UnsupportedEncodingException
。
如果您使用的是较旧的Java版本,则可以自己声明字符集常量:
import java.nio.charset.Charset;
public class StandardCharsets {
public static final Charset ISO_8859_1 = Charset.forName("ISO-8859-1");
public static final Charset UTF_8 = Charset.forName("UTF-8");
//....
}
https://stackoverflow.com/questions/5729806
复制相似问题