当前位置: 代码迷 >> Java Web开发 >> ISO8859-1转GBK的一个有关问题
  详细解决方案

ISO8859-1转GBK的一个有关问题

热度:459   发布时间:2016-04-17 00:16:07.0
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。
求解

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