请问能用将中文编码UTF-8转换成为拉丁文吗?通过什么方法实现?好像这样是反回的只是“??”new String("中文".getBytes("ISO-8859-1"))我是想将中文转成拉丁文,谢谢各位

解决方案 »

  1.   

    似乎拉丁文可以通过ISO-8859-1转成中文,有什么可逆的方法吗?
      

  2.   

    如果
    拉丁文可以通过ISO-8859-1转成中文那末翻译就失业拉,呵呵
      

  3.   


    呵呵,你可以试试这个String msg = "ª÷µP©ÞÄõ¦a";
    try {
    msg   = new String(msg.getBytes("ISO8859-1"));
    } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    }   
      System.out.println("中文:"+msg);//乱码的确可以,但好象找不到逆转的方法,所以请大家帮帮忙
      

  4.   

    这种转化应该只是数值上的转化吧 ,没有语义联系的啊 只是拉丁文的UTF-16编码数值在ISO-8859-1编码中的对应字符!!! 需要翻译!!
      

  5.   

    貌似ISO-8859-1是西欧编码,单字节的编码。
    这种编码编不了汉字滴,即使强制编码,那么,编完以后,再解码也不会是原来的汉字(更有可能是乱码)。楼主遇到的情况,可能是用ISO-8859-1编码来承载GBK编码的汉字。
    通俗点说,就是,表面上看那个byte数组里放的是ISO-8859-1编码的字符,其实,它是GBK编码的汉字。我这段代码,楼主可以参考一下。
    String msg = "我是中国人";//建立一个对象做测试使用
    byte [] gbk = msg.getBytes("GBK");//将字符串的GBK编码存放到字节数组中
    String trans = new String(gbk,"ISO-8859-1");//将GBK编码的字符串,用ISO-8859-1编码来存放
    //其实,这个时候,trans里面是乱码的东西,
    //你单独用ISO-8859-1和GBK解码都无法正确显示字符串的内容。
    //一般情况下,你的程序会拿到trans字符串,然后让你解码。
    byte [] tmp = trans.getBytes("ISO-8859-1");//把字符串,用ISO-8859-1解码,放到byte数组当中
    String str1 = new String(tmp,"GBK");//将字节数组的内容用GBK编码进行解码
    String str2 = new String(tmp);//如果你的计算机默认是GBK编码,这个语句同上一句一样。代码结束。下面谈谈个人的理解。
    为什么ISO-8859-1编码来传输信息?
    因为,ISO-8859-1编码,把一个字节的8个bit全都占用了,
      这样,无论存放什么信息,编码解码过程中一般都不会有异常抛出。
    如果采用ASCII编码,就会存在问题,因为ASCII编码只用了一个字节的7bit位,
      当你的信息编码用到第8个bit时,一般会抛出异常。因为正常的ASCII编码,是只用7bit滴。