IDE的默认编码是GBK,然后我在类里写了
String a = URLEncoder.encode("高大", "UTF-8");
    String b=URLDecoder.decode(a, "UTF-8");
String c=new String (a.getBytes("UTF-8"),"GBK");
打印的
a=%E9%AB%98%E5%A4%A7 
b=高大 
c=%E9%AB%98%E5%A4%A7
当我把IDE的编码格式改为UTF-8后,我写了上面同样的代码,打印的为
a=%EF%BF%BD%DF%B4%EF%BF%BD%E9%AB%98%E5%A4%A7 
b=???高大 
c=%EF%BF%BD%DF%B4%EF%BF%BD%E9%AB%98%E5%A4%A7
什么情况?为什么b会是这样的?高手指教。

解决方案 »

  1.   

    如果在IE里写的URL:http://ip/a/index.jsp?a=高大
    IE会对URL进行怎样的编码?如果我把“高大”换成UTF8编码后的代码,又会怎样编码?
      

  2.   

    是这样的:本来IDE是GBK的,换成UTF-8后汉字显示会出现问题,有的是乱码,有的干脆就看不到了
    你把String a = URLEncoder.encode("高大", "UTF-8");这句话删掉重新写此就OK了
      

  3.   


    正解,就是你改了IDE编码以后没有重新 按照新的编码写文件
      文件自动把你(高大)的UTF-8 改成了GBK
      

  4.   

    如果你的应用服务器用的是tomcat,不设置tomcat的编码的话,url中的中文会默认先转为iso8859-1.
    应用服务器对url的编码是可以设置的。