utf-8可以转换成gb2312吗?
我要把页面的输入保存到mysql中啊,因为用了资源包页面好像必须使用utf-8编码啊,所以是不是要求数据库编码也必须用utf-8

解决方案 »

  1.   

    我试了一下,页面utf8编码,mysql 依然用gb2312编码,竟然正常,为什么?难道mysql会自动将utf8自动转换成gb2312?????
      

  2.   

    文不对题。资源包确实跟数据库没有关系。 资源包应该是 ASCII 码才对,如果包含中文等,要 Native2Ascii 转换成 \uXXXX 之流。至于 MySQL 就不知道了,只是听说可以  在连接中指定使用字符集。
      

  3.   

    utf-8当然可以转换成gb2312,这是转码问题,用google一搜一大把。如果你觉得麻烦的话,就无论是jsp页面,还是servlet接受的编码,还是数据库编码,这几个部分都用utf-8就好了。mysql的jdbc包有个特色,就是可以根据你的设置自动进行编码。由于mysql一般都是采用默认的拉丁编码的,所以一般你需要指定编码,使你的数据在存入数据库时,jdbc包能够根据你的设定对数据进行相应的编码。而你只要设置如下即可
    jdbc:mysql://localhost/test?user=root&password=&useUnicode=true&characterEncoding=utf-8
    其中的关键就在于后面的characterEncoding=utf-8,如果你设置了这个,那么在存数据的时候mysql的jdbc包就会根据设置,对数据进行utf-8编码,所以虽然数据库编码默认是拉丁编码,但是你实际存储的数据却是utf-8的,同样你也可以设置其为GBK或gb2312。但是你取数据的时候也必须按照相应的格式来取,如果你存的时候是utf-8的,取的时候则是GBK编码,那么毫无疑问,你取出来的乱码。不知道我这个解释你是否明白?如果还不明白,就给我发消息吧。
      

  4.   

    JAVA 内部使用 UNICODE 编码,JAVA 本身就会在本地机器编码和内部编码之间自动转换。
      

  5.   

    非常感谢各位,基本弄明白了,还是一律采用utf8好了,反正数据不多也不怕多点存储空间,换来的就是以后可能的国际化的方便,看看存韩文、繁体、还有可恶的鬼子文,都照样可以读出来,感觉也挺爽,虽然暂时没多大实际用途。
      

  6.   

    还有什么高见的,多发布,很快要结贴给分了哦。
    我不太明白网页表单传到后台服务程序的过程,尤其是编码,我看有文章说是先以UTF编码再送到服务器的,是否真的这样?如果网页是gb2312或者gbk编码的还可以理解,那如果我网页的charset本身设置为utf8了,那又如何呢?
      

  7.   

    对一般要用utf8,因为它是国际通用的,否则你的汉字在别人的浏览器上会显示乱码!