很多数据不能进入库源库 的表 字段 全部都是latin1
目的库的表 字段 也全部都是latin1
目但现在发现从源库 用java代码取出的数据是utf8形式 (某些不明国家的字符集)
现在insert他们到目的库发现失败 (我将这些字段类型改为utf8 发现导出是成功的)
但为了保证源库 和目的库 的同一性
只想在代码里修改 问该如何在代码里作  (我已经用了 getbytes  uft8--latin1  )

解决方案 »

  1.   

    我在一台机器上做成功了
    但是不能再其他机器再现成功  (数据库同时在同一mysql服务器) ,java代码是一样的e
    检查os eclipse jvm配置实在找不到差别?
    希望能提供线索如何解决 现在到了死胡同 
      

  2.   

    这2天探索:
    System.getProperties().list(System.out);
    分别在不成功机器 和成功机器上做
    1 不成功机器输出
    -- virutue machine listing properties --
    java.runtime.name=Java(TM) SE Runtime Environment
    sun.boot.library.path=C:\Program Files\Java\jre1.6.0_07\bin
    java.vm.version=10.0-b23
    java.vm.vendor=Sun Microsystems Inc.
    java.vendor.url=http://java.sun.com/
    path.separator=;
    java.vm.name=Java HotSpot(TM) Client VM
    file.encoding.pkg=sun.io
    user.country=US
    sun.java.launcher=SUN_STANDARD
    sun.os.patch.level=Service Pack 2
    java.vm.specification.name=Java Virtual Machine Specification
    user.dir=C:\Documents and Settings\bruce\works...
    java.runtime.version=1.6.0_07-b06
    java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
    java.endorsed.dirs=C:\Program Files\Java\jre1.6.0_07\lib...
    os.arch=x86
    java.io.tmpdir=C:\DOCUME~1\bruce\LOCALS~1\Temp\
    line.separator=java.vm.specification.vendor=Sun Microsystems Inc.
    user.variant=
    os.name=Windows XP
    sun.jnu.encoding=GBK
    java.library.path=C:\Program Files\Java\jre1.6.0_07\bin...
    java.specification.name=Java Platform API Specification
    java.class.version=50.0
    sun.management.compiler=HotSpot Client Compiler
    os.version=5.1
    user.home=C:\Documents and Settings\bruce
    user.timezone=Asia/Shanghai
    java.awt.printerjob=sun.awt.windows.WPrinterJob
    file.encoding=ISO-8859-1
    java.specification.version=1.6
    user.name=bruce
    java.class.path=C:\Documents and Settings\bruce\works...
    java.vm.specification.version=1.0
    sun.arch.data.model=32
    java.home=C:\Program Files\Java\jre1.6.0_07
    java.specification.vendor=Sun Microsystems Inc.
    user.language=en
    awt.toolkit=sun.awt.windows.WToolkit
    java.vm.info=mixed mode, sharing
    java.version=1.6.0_07
    java.ext.dirs=C:\Program Files\Java\jre1.6.0_07\lib...
    sun.boot.class.path=C:\Program Files\Java\jre1.6.0_07\lib...
    java.vendor=Sun Microsystems Inc.
    file.separator=\
    java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport...
    sun.cpu.endian=little
    sun.io.unicode.encoding=UnicodeLittle
    sun.desktop=windows
    sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+m...
    sdfsd\'f
    haÂ?staÂ?
    insert into a.aa values(10133053,1,7,'haÂ?staÂ?',38735,1,'2009-02-28 09:32:25.0','null',0)
    Exc2成功机器输出
    System.getProperties().list(System.out);
    --win```````````````dws listing properties --
    java.runtime.name=Java(TM) SE Runtime Environment
    sun.boot.library.path=C:\Program Files\Java\jre1.6.0_07\bin
    java.vm.version=10.0-b23
    java.vm.vendor=Sun Microsystems Inc.
    java.vendor.url=http://java.sun.com/
    path.separator=;
    java.vm.name=Java HotSpot(TM) Client VM
    file.encoding.pkg=sun.io
    user.country=CN
    sun.java.launcher=SUN_STANDARD
    sun.os.patch.level=Service Pack 2
    java.vm.specification.name=Java Virtual Machine Specification
    user.dir=C:\Documents and Settings\bruce\works...
    java.runtime.version=1.6.0_07-b06
    java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
    java.endorsed.dirs=C:\Program Files\Java\jre1.6.0_07\lib...
    os.arch=x86
    java.io.tmpdir=C:\DOCUME~1\lh\LOCALS~1\Temp\
    line.separator=java.vm.specification.vendor=Sun Microsystems Inc.
    user.variant=
    os.name=Windows XP
    sun.jnu.encoding=GBK
    java.library.path=C:\Program Files\Java\jre1.6.0_07\bin...
    java.specification.name=Java Platform API Specification
    java.class.version=50.0
    sun.management.compiler=HotSpot Client Compiler
    os.version=5.1
    user.home=C:\Documents and Settings\lh
    user.timezone=
    java.awt.printerjob=sun.awt.windows.WPrinterJob
    file.encoding=ISO-8859-1
    java.specification.version=1.6
    user.name=lh
    java.class.path=C:\Documents and Settings\bruce\works...
    java.vm.specification.version=1.0
    sun.arch.data.model=32
    java.home=C:\Program Files\Java\jre1.6.0_07
    java.specification.vendor=Sun Microsystems Inc.
    user.language=zh
    awt.toolkit=sun.awt.windows.WToolkit
    java.vm.info=mixed mode, sharing
    java.version=1.6.0_07
    java.ext.dirs=C:\Program Files\Java\jre1.6.0_07\lib...
    sun.boot.class.path=C:\Program Files\Java\jre1.6.0_07\lib...
    java.vendor=Sun Microsystems Inc.
    file.separator=\
    java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport...
    sun.cpu.endian=little
    sun.io.unicode.encoding=UnicodeLittle
    sun.desktop=windows
    sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+m...
    sdfsd\'f
    可惜还是不能得到区分 (是否file.encoding=ISO-8859-1有所区别 这个是不同)另外我用下面的代码、char[] test=new char[collectedName.length()];
    collectedName.getChars(0, collectedName.length(), test, 0);
    for(int i=0;i<collectedName.length();i++){
    System.out.println((byte)test[i]);
    }
    System.out.println(collectedName);
    得到以下输出    源数据是 ha„sta–
    \'f
    104
    97
    -62
    -124
    115
    116
    97
    -62
    -106
    这个代码在2台机器是一样的哦 
    问题在-62.(机器可能不能找到对应的符号),不知道如何解决这个