日期:2014-05-17  浏览次数:20809 次

ISO8859-1转GBK的一个问题
由于数据库里存的是iso8859-1的字符,需要在取出时将其转化为GBK编码以进行输出,
故在此用以下代码进行转换
Java code

public String convertISO8859_1ToGBK(String str) {
        String returnStr = "";
        if (str.startsWith("\"")) {
            str = str.substring(1);
        }
        if (str.endsWith("\"")) {
            str = str.substring(0, str.length() - 1);
        }
        try {
            returnStr = new String(str.getBytes("ISO8859_1"), "GBK");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return returnStr;
    }



以上函数用以下代码测试通过,转换成功
Java code

System.out.println(convertISO8859_1ToGBK("\320\302\272\350\317\35086 2070W\320\266\264\254\264\254\315\274 (2).txt")); //里面的字符就是iso8859-1的


输出结果为 新鸿翔86 2070W卸船船图 (2).txt

但是当我把这个函数用于WEB项目时,问题出现了,转换后的字符串与转换前没有任何区别。
DEBUG过,转换前的字符串与上面的完全相同,转换后不变,绝不是页面输出问题。数据库连接为GBK。
求解

------解决方案--------------------
你的数据源是从数据库里取的还是从前台传过来的?
如果从前台传过来的,那这个方法就不一定能转换成功了,因为我们不知道你前台的编码是什么?
如果从数据库取出来,在后台打印还是没转换过来的话,这个原因就不清楚了
------解决方案--------------------
楼主你把怎么调的代码贴出来看看呢?