请大家帮忙!从页面提交信息入库时,忘记设置 request.setCharacterEncoding("GBK") ,入库后所有中文为乱码。
请教:
如果想要从数据库中把乱码还原成中文,如何才能够办到?谢谢!

解决方案 »

  1.   

    先读出来,然后用GBK编码以后再重新写入数据库
      

  2.   

    要分清入库前是什么样的内容?是否乱码?MySQL也有编码问题的
      

  3.   

    谢谢各位!入库之前,没有加 request.setCharacterEncoding("GBK"),得到的内容是乱码,linux9 系统环境,数据库是oracle9i。难道真的无计可施?
      

  4.   

    应该读出来 然后看是什么编码 再转换为GBK 就可以了啊 LZ可以拿一条记录试一下嘛
      

  5.   

    我试了~我基本上做了所有可能的转换。
    下面是测试的类:import java.io.UnsupportedEncodingException;public class StringEncodingTest {    public StringEncodingTest() {        super();
        }    public String getString(String aString, String encodingOld,
            String encodingNew) {        if (aString == null) {
                return "";
            }
            try {
                byte bs[] = aString.getBytes(encodingOld);
                return new String(bs, encodingNew);
            }
            catch (UnsupportedEncodingException uee) {
                return "";
            }
        }    public static void main(String[] args) {        StringEncodingTest test = new StringEncodingTest();
            String testString = new String("±±??ó??¢?§?o");
            String[] encodingStart = new String[] {"iso-8859-1", "GBK", "gb2312",
                "UTF-8", "big5"};
            String[] encodingEnd = new String[] {"iso-8859-1", "GBK", "gb2312",
                "UTF-8", "big5"};
            try {
                for (int i = 0; i < encodingStart.length; i++) {                System.out.println(encodingStart[i] + " = "
                        + new String(testString.getBytes(encodingStart[i])));                for (int j = 0; j < encodingEnd.length; j++) {
                        System.out.println(encodingEnd[j] + " = "
                            + new String(testString.getBytes(encodingEnd[j])));
                        System.out.println("from " + encodingStart[i] + " to "
                            + encodingEnd[j]);
                        System.out.println(test.getString(testString,
                            encodingStart[i], encodingEnd[j]));
                    }            }
            }
            catch (UnsupportedEncodingException ex) {
                ex.printStackTrace();
            }
        }}
    各位也帮忙测测,看看这样思路是否正确:)
      

  6.   

    要看数据库是什么编码。如果没加request.setCharacterEncoding("GBK"),默认接收的应该是iso8859-1编码。正常情况下将iso8859-1转到gb2312应该可以,
    但现在不知道数据库默认为何种编码,可能还要再转一次,先把数据库编码到iso8859-1再到gb2312就行了。
      

  7.   

    使用的是oracle9i,linux下的,如何得到其编码类型呢?
      

  8.   

    oracle9i有管理工具 ,可以设置和查看编码
      

  9.   

    路过的各位,帮忙看看这几个帖子,看怎么解决;)
    谢谢啦!关于客户端页面从数据库中读取大量图片的问题
    http://community.csdn.net/Expert/TopicView3.asp?id=4816106乱码还原问题!
    http://community.csdn.net/Expert/TopicView3.asp?id=4813786关于javabean反射代理的问题
    http://community.csdn.net/Expert/TopicView3.asp?id=4813935大家帮忙顶顶!