网址url传递参数包含中文时乱码的问题的解决

      实现方法很简单,就是先把文字内容转为Unicode,就是编码的过程。然后在用到的地方再转为汉字,也就是解码的过程。Unicode的概念不在本文的讲解范围之内,需要了解相关内容请查询对应介绍。

下面直接贴代码了:

 

/* *

     * 编码从GBK转换成Unicode

     * @param str

     * @return

     
*/

    public static String Gbk2Unicode(String str) {

        StringBuffer buffer =  new StringBuffer();

        String splitString = "";

         for ( int i = 0; i < str.length(); i++) {

            buffer.append(splitString);

            buffer.append(Integer.toHexString(str.charAt(i)));

            splitString = ",";

        }

         return buffer.toString();

    }



     /* *

     * 编码从Unicode转换成GBK

     * @param str

     * @return

     
*/

    public static String Unicode2Gbk(String str) {

        StringBuffer buffer =  new StringBuffer();

        String[] arr = StringUtils.split(str, ',');

         for ( int i = 0; i < arr.length; i++) {

            buffer.append(( char) Integer.parseInt(arr[i], 16));

        }

         return buffer.toString();

    } 

 

      代码很简单,如何使用这里就不在举例了,方法里使用到了commons.lang包里的StringUtils.split方法,在使用前需要引用 commons.lang包,或是改用其他的实现方式。StringUtils.split方法的功能是把字符串按照指定字符拆解为数组。

转载于:https://www.cnblogs.com/witrays/archive/2012/05/24/2516000.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值