有一个获得URL参数的servlet,参数里有中文
url:http://localhost:8888/ct/ct10?nm=梁朝伟&nm1=刘嘉玲&phone=123456&fro=1
原来出现的获得参数是乱码问题已经解决了(在TOMCAT里加了一句URIEcoding="GBK")
后来从网上看到些关于URL编码解码的问题,请问我这个怎么进行编码解码,程序逻辑是:我在IE里输入以上的URL就有个ct10这个servlet来获取参数,用拿来的参数来插入都数据库,应用到项目中既然我获得的参数已经不乱码了,还有有必要去做URL的编码和解码吗?
要做的话我改在什么地方去编码什么地方去解码?

解决方案 »

  1.   

    其实你如果不在SERVER.XML里面配置uriencoding=gbk的话,系统默认的URL的传递是TOMCAT默认的iso的格式,
    所以到我们的后台会发现乱码,因此,你可以在进行URL参数传递的时候进行编码.
    注意,编码格式取决于你的JSP的页面编码格式,即CONTENT-TYPE的charset=utf-8
    在进行URL的传递时,用
    location = encodeURI(location)
    这样你在后台的时候,通过
    java.net.URLEncoder.encode()进行解码,注意,在解码的时候必须要加上你原来编码的格式,
    如果你的JSP用的是GBK,解码的第二个参数就是GBK
    如URLEncoder.encode(param,"utf-8")
    希望对你有所帮助
      

  2.   

    我其实是没有jsp页面的,就是直接把URL输到浏览器,这样怎么进行编码解码?
    所谓的在URL传递时----我的这个什么时候算是URL传递时?
    请指教,谢谢
      

  3.   

    不是很明白你的意思,什么就直接把URL输到浏览器?
    所谓URL传递,你就理解是通过在游览器上敲网址都是走URL的
    你可以在地址栏里面看到你传递的参数
    比如你在google里面搜中文,你会发现地址栏里面的住息都是经过URI编码的了
      

  4.   

    如果直接输入URL到浏览器地址框的话,浏览器会对它进行URL编码的。
      

  5.   

    既然后台得到的已经不是乱码的,就不用进行编码了,除非时一些敏感数据,其实如果是敏感数据,都以post方式在隐藏栏位里提交。