java如何把string转为utf-8

 我来答
精麒设计
2018-11-05 · TA获得超过1.5万个赞
知道答主
回答量:64
采纳率:0%
帮助的人:2.8万
展开全部

java不同编码之间进行转换,都需要使用unicode作为中转。

String str = "任意字符串";

str = new String(str.getBytes("gbk"),"utf-8");

备注说明:

str.getBytes("UTF-8"); 意思是以UTF-8的编码取得字节

new String(XXX,"UTF-8"); 意思是以UTF-8的编码生成字符串

举例:

public static String getUTF8XMLString(String xml) {

// A StringBuffer Object

StringBuffer sb = new StringBuffer();

sb.append(xml);

String xmString = "";

String xmlUTF8="";

try {

xmString = new String(sb.toString().getBytes("UTF-8"));

xmlUTF8 = URLEncoder.encode(xmString, "UTF-8");

System.out.println("utf-8 编码:" + xmlUTF8) ;

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

// return to String Formed

return xmlUTF8;

扩展资料:

UTF-8编码规则:

如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的字节数,其余各字节均以10开头。

实际表示ASCII字符的UNICODE字符,将会编码成1个字节,并且UTF-8表示与ASCII字符表示是一样的。所有其他的UNICODE字符转化成UTF-8将需要至少2个字节。每个字节由一个换码序列开始。第一个字节由唯一的换码序列,由n位连续的1加一位0组成,首字节连续的1的个数表示字符编码所需的字节数。

Unicode转换为UTF-8时,可以将Unicode二进制从低位往高位取出二进制数字,每次取6位,如上述的二进制就可以分别取出为如下示例所示的格式,前面按格式填补,不足8位用0填补。

参考资料来源:百度百科:UTF-8

fifaWCP2018

2019-12-21 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3.4万
采纳率:98%
帮助的人:631万
展开全部
第一步:问题思想。
1、字符串需要转utf-8的原因一般都是因为字符串中文的乱码问题
2、这种乱码问题一般出现在前端的get提交中较多。
3、在servlet重定向传参数时也会出现中文乱码的问题。
2
/5
第二步:新建一个javaweb项目。
打开myeclipse file --》new--》web project
具体操作如下图所示:
3
/5
第三步:配置servlet。
1、编写servlet类
2、在web.xml中配置请求
4
/5
第三步:测试乱码问题。
1、打开页面输入汉字请求servlet
2、后台打印输入都是?
5
/5
第四步:问题定位解决
1、前台传输的时候默认将中文按ISO-8859-1进行编码进行编码导致后天接收失败
2、解决:借助于byte字节和字符串的转换解决。
2.1:思路:先将前台数据按照其传输的编码转为字节码,然后再用utf-8转回字符串
2.2 代码如下所示
ublic void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String sex = request.getParameter("sex");
String[] bobby = request.getParameterValues("bobby");
System.out.println("性别 :"+new String(sex.getBytes("ISO-8859-1"),"UTF-8"));
for (int i = 1; i <= bobby.length; i++) {
System.out.println("爱好"+i+" :"+new String(bobby[i-1].getBytes("ISO-8859-1"),"UTF-8"));
}
}
3:测试功能
3.1:打开页面输入中文
3.2后天打印数据中文显示出来测试成功
注意事项
这种方法也可用在其它编码的情况如response重定向时传参现将其转为uft-8字节码(sex.getBytes("UTF-8")),接收时在转回来(new String(sex.getBytes("UTF-8"),"UTF-8")))
java字符串如何转码为utf-8问题解决办法就是:new String(字符串变量.getBytes(传输过程中的编码),"UTF-8"))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nizhihe
2015-07-09 · TA获得超过1637个赞
知道小有建树答主
回答量:542
采纳率:73%
帮助的人:149万
展开全部
String str = "任意字符串";
str = new String(str.getBytes("gbk"),"utf-8");

备注说明:
str.getBytes("UTF-8"); 的意思是以UTF-8的编码取得字节
new String(XXX,"UTF-8"); 的意思是以UTF-8的编码生成字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙2011
2014-11-05 · TA获得超过1851个赞
知道小有建树答主
回答量:1043
采纳率:100%
帮助的人:789万
展开全部
String str = "string转为utf-8";

str = new String(str.getBytes("gbk"),"utf-8");
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
manwu91
2015-06-16 · TA获得超过486个赞
知道小有建树答主
回答量:385
采纳率:71%
帮助的人:289万
展开全部
你说的是把字符串转码吧
new String("String".getBytes(),"UTF-8")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式