为了账号安全,请及时绑定邮箱和手机立即绑定

解决中文乱码问题的一点疑惑

已经把request的setcharactercoding改成了 utf-8,为什么还要再调用net包里面的java.net.URLEncoder.encode()方法呢???

正在回答

3 回答

package com.imooc.demo;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

public class UrlEncodeDemo {

	public static void main(String[] args) throws UnsupportedEncodingException {
		//URLEncoder编码中文字符串
		StringBuilder str_no_encode = new StringBuilder("我是一个好人");
		StringBuilder str_encode = new StringBuilder(URLEncoder.encode(str_no_encode.toString(), "utf-8"));
		System.out.println("编码前字符串:"+str_no_encode);
		System.out.println("编码后字符串:"+str_encode);
        //URLDecoder解码中文字符串
		StringBuilder str_decode = new StringBuilder(URLDecoder.decode(str_encode.toString(), "utf-8"));
		System.out.println("解码后字符串:"+str_decode.toString());
	}

}

这是运行结果:

编码前字符串:我是一个好人

编码后字符串:%E6%88%91%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E4%BA%BA

解码后字符串:我是一个好人

这个是我写的一个中文编码,解码过程的一个案例。你看了案例就会明白,在一些地方,无法使用中文直接存储,所以就必须按照一定格式,将中文编码,编码之后存储,下次取得时候,再按照一定格式解码。实际上cookie就是一个无法存储中文的地方,所以必须将存储的中文进行编码,至于已经把request的setcharactercoding改成了 utf-8这个只能设置你在页面请求的时候的编码,设置之后你可以在请求接收和传送中使用中文。这下你懂了吧

3 回复 有任何疑惑可以回复我~
#1

咚冬呛 提问者

懂了,太感谢你耐心的回答了!十分感谢!
2016-05-28 回复 有任何疑惑可以回复我~
#2

qq_云在风中_0 回复 咚冬呛 提问者

呵呵,为人解惑,也是为自己解惑。。。
2016-05-28 回复 有任何疑惑可以回复我~

还是不太懂,能说得详细一点吗?谢谢!

0 回复 有任何疑惑可以回复我~

前者是设置  后者是转码


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

解决中文乱码问题的一点疑惑

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信