mysql4.1以上的,乱码问题都好解决,只需要在创表的后面加上default character set xx,JDBC的url后面加上useUnicode=true&characterEncoding=xx,一切都可以解决。   但是今天遇到个非常棘手的问题,数据库是3.23版本,该版本不支持多语言,而且数据库是空间商提供,无法修改配置,所有的character set都是latin1的编码。请问一下有没有简单的方法可以让他支持中文的存取?   最不想看到的就是要“gbk-转iso-iso连接-存库-iso连接-iso-转gbk”这样的操作,移植的系统,数据量很大,页面也很多。

解决方案 »

  1.   

    mysql3.23?
    没用过,不清楚情况
    study & up
      

  2.   

    latin1 本身是可以存放中文的。 只不过你取数据的时候也要设置字符集为latin1 ,这样MYSQL会不做任何转换直接把数据传给你,然后你再显示。
      

  3.   

    字符集似乎是4才有的,最重要的是你的客户端也要用latin1插入记录、显示
      

  4.   


    这么说也不支持set names 这样的了?也没
    mysql> show variables like '%char%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | latin1                     | 
    | character_set_connection | latin1                     | 
    | character_set_database   | utf8                       | 
    | character_set_filesystem | binary                     | 
    | character_set_results    | latin1                     | 
    | character_set_server     | latin1                     | 
    | character_set_system     | utf8                       | 
    | character_sets_dir       | /usr/share/mysql/charsets/ | 
    +--------------------------+----------------------------+
    这些参数了?如果是的话,那就得要“客户端也要用latin1插入记录、显示”
    呵呵,学习了
      

  5.   

    2L的意思是jdbc的url加上characterEncoding=latin1这样取连接数据库,表的character set也用默认,让数据库不对存取的数据转码?这样可以吗?url不加characterEncoding=latin1好像就是用的数据库默认连接。