解决中文乱码问题的一点疑惑
已经把request的setcharactercoding改成了 utf-8,为什么还要再调用net包里面的java.net.URLEncoder.encode()方法呢???
已经把request的setcharactercoding改成了 utf-8,为什么还要再调用net包里面的java.net.URLEncoder.encode()方法呢???
2016-04-23
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这个只能设置你在页面请求的时候的编码,设置之后你可以在请求接收和传送中使用中文。这下你懂了吧
举报