我发现无论如何,java在solaris上产生的文本都是普通dos文本,无法生成unicode文本。请问该如何做?

解决方案 »

  1.   

    jdk的bin目录中有个native2ascii的工具,执行这个工具可以将中文转换成unicode文本,windows下打开cmd,切换到before.lang文件下输入native2ascii before.lang afer.langu。会生成after.langu的unicode文件。solaris上就不知道了,我想应该差不多吧!
      

  2.   

    我不是要把文件里的所有字符转换成类似\uxxxx的形式,而是要生成一个unicode编码的文本文件,用记事本什么的一打开就是正常的文本。我试了很多办法了,在windows上可以,但是在solaris上就是不行
      

  3.   

    你试试下面这段代码:
    package redtroy.test;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2005</p>
     * <p>Company: </p>
     * @author not attributable
     * @version 1.0
     */public class String2UTF8 {
      public String2UTF8() {
      }  public static String toUtf8String(String s) {
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < s.length(); i++) {
          char c = s.charAt(i);
          if (c >= 0 && c <= 255) {
            sb.append(c);
          }
          else {
            byte[] b;
            try {
              b = Character.toString(c).getBytes("utf-8");
            }
            catch (Exception ex) {
              System.out.println(ex);
              b = new byte[0];
            }
            for (int j = 0; j < b.length; j++) {
              int k = b[j];
              if (k < 0) {
                k += 256;
              }
              sb.append("%" + Integer.toHexString(k).
                        toUpperCase());
            }
          }
        }
        return sb.toString();
      }  public static void main(String args[]) {
        System.out.println(String2UTF8.toUtf8String("S0507010002热血秒月互换1x0.0.txt"));
      }}
      

  4.   

    我已经知道为什么了。因为pc机和sun box的cpu的工作方式不同,同样是unicode,一个把高位放在前面,一个把低位放在前面。所以在solaris上产生的unicode编码的文本下载到windows上无法阅读。请问如何解决这个问题啊?有什么方法可以使solaris按照windows的高位低位方法来处理unicode字符串啊?