由于接口需要,对某些中文字符的编码需要从utf-8转换为gbk,部分代码如下:
在传输中文参数时先进行了URLDecoder.encode编码,然后
String Address = new String(URLDecoder.decode(goodsAddress, "gbk"));
Address = new String(goodsAddress.getBytes(),"gbk");
System.out.println("###Address:"+Address);
按理说应该可以转换成功显示中文,但还是显示乱码,在本地可以正常显示,但是linux服务器上显示乱码,这是为什么呢
URLDecoder.decode
URLDecoder.encode
呵呵,我题目里已经说了用到这了,并且用到这的时候还是正常的,就是Address = new String(goodsAddress.getBytes(),"gbk");这句不能转换编码,并且这段代码在本地xp下执行是没有问题的,只有放到linux服务器的时候才会出现乱码错误
@jfcjyo:
和中间件的默认编码有关系么,比如tomcat的默认编码
这个中间件的默认编码是utf8不能改的,只是有一个接口必须gbk的编码,所以我就按上述方法转了,xp下可以,为啥linux下就还是乱码,真心不明白啊,呵呵