首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将字符串编码为UTF-8

将字符串编码为UTF-8
EN

Stack Overflow用户
提问于 2011-04-20 19:55:43
回答 10查看 1M关注 0票数 201

我有一个带有"ñ“字符的字符串,我对它有一些问题。我需要将这个字符串编码为UTF-8编码。我试过用这种方法,但不起作用:

代码语言:javascript
复制
byte ptext[] = myString.getBytes();
String value = new String(ptext, "UTF-8");

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

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2011-04-20 19:58:09

Java中的String对象使用不能修改的UTF16编码。

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

票数 147
EN

Stack Overflow用户

发布于 2011-04-20 19:57:53

如何使用

代码语言:javascript
复制
ByteBuffer byteBuffer = StandardCharsets.UTF_8.encode(myString)
票数 183
EN

Stack Overflow用户

发布于 2013-11-27 20:52:43

在Java7中,您可以使用:

代码语言:javascript
复制
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版本,则可以自己声明字符集常量:

代码语言:javascript
复制
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");
    //....
}
票数 87
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5729806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档