解决中文乱码问题的一点疑惑
已经把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这个只能设置你在页面请求的时候的编码,设置之后你可以在请求接收和传送中使用中文。这下你懂了吧
举报