在Java中是否可以将字符集1047转换为另一个字符集,比如500?

时间:2014-11-05 06:05:42

标签: java character-encoding

我有一个从MQ读取消息的程序。字符集是1047.因为我的java版本很旧,所以它不支持字符集。

是否可以在接收之后但在阅读之前将此字符串更改为程序中的字符集500.

例如:

public void fun (String str){         //str in char set 1047. **1047 is not supported in my system**
  /* can I convert str into char set 500 here. Convert it into byte stream and then back to      string. Something like this */

             byte [] b=str.getBytes();
             ByteArrayOutputStream baos = null;
       try{
         baos = new ByteArrayOutputStream();
         baos.write(b);
         String str = baos.toString("IBM-500");
         System.out.println(str);
    }

1 个答案:

答案 0 :(得分:0)

byte [] b = str.getBytes(); //将使用file.encoding将字符串(编码只能是jvm中的Unicode)转换为字节。您应该检查str是否包含正确的信息,如果是这样,您不必关心1047编码,只需运行str.getBytes(" IBM-500"),您将获得500个编码的字节。同样,String对象只使用Unicode,如果将字符串转换为字节,则编码对结果字节数组很重要。