用java和wmlscript
两种语言实现

解决方案 »

  1.   

    String[] ss=new String[s.length()];
    for(int i=0;i<s.length();i++)
    {
       ss[i]=Integer.toHexString((int)s.charAt(i) & 0xffff);
       System.out.println(ss[i]);
    }
      

  2.   

    我的方法:String s = "你好234";
    try {
      String localEncode = System.getProperty("file.encoding");
      s = new String(s.getBytes(localEncode), "Unicode");
      System.out.println(s);
    }
    catch (Exception e) {
      System.out.println(e.toString());
    }
      

  3.   

    多谢tin_dra(鹈觥),我试过了,对的:)
    mars_fiend(张力)兄,s = new String(s.getBytes(localEncode), "Unicode");这个方法有问题吧,我试过不行呀
    多谢二位
    给分
      

  4.   

    :)不好意思,还有一问呀,险些忘了
    在wmlscript中有这样的函数马
      

  5.   

    public static String dumpHEX(String rStr) 
       {
          return dumpHEX(rStr, null);
       }
       public static String dumpHEX(String rStr, String rEncoding) 
       {
          byte[] buf = null;
          try 
          {
             if(rEncoding != null) 
                buf = rStr.getBytes(rEncoding);
             else 
                buf = rStr.getBytes();
             //System.out.println(new String(rStr.getBytes(rEncoding)));
          }
          catch(Exception e) 
          {
             e.printStackTrace();
          }
          StringBuffer sb = new StringBuffer();
          for(int i = 0; i < buf.length; i ++ ) 
          {
             sb.append(dumpHEXStr(buf[i]) + " ");
          }
          System.out.println(sb.toString());
          return sb.toString();
       }
       public static String dumpHEXStr(byte b) 
       {
          return ("" + "0123456789ABCDEF".charAt(0xf & b >> 4) + "0123456789ABCDEF".charAt(b & 0xf));      
       }用第一个方法查看字符串的16进制数,看是否是Unicode.
    ---------------
    [email protected]
      

  6.   

    用这个吧: public static String toHEXString(byte b) {
    return (""+"0123456789ABCDEF".charAt(0xf&b>>4)+"0123456789ABCDEF".charAt(b&0xF));
    }

    public static String getUnicode(String setStr) {
    String szRet = "";
    String szRetTmp = null;
    String str = null;
    try {
    try {
    str = new String(setStr.getBytes("ISO-8859-1"),"GBK");
    }catch(Exception ex){
    ex.printStackTrace();
    }
    byte[] bb = str.getBytes("UTF16");
    for(int i = 2; i < bb.length; i++)
    {
    i++;
    if(bb[i-1] != 0)
    szRetTmp = "&#x" + toHEXString(bb[i-1]) + toHEXString(bb[i]) + ";";
    else
    szRetTmp = new String(bb,i,1,"GBK");
    szRet = szRet + szRetTmp;
    }
    }catch(Exception ex) {
    szRet="Sorry Convert2Unicode method fail!";
    ex.printStackTrace();
    }
    return szRet;
    }

    public static String getUnicode(String setStr,String encoding) {
    String str = null;
    try {
    str = new String(setStr.getBytes(encoding),"ISO-8859-1");
    }catch(Exception ex){
    ex.printStackTrace();
    }
    return getUnicode(str);
    }
      

  7.   

    非常感谢各位老兄的帮助:
    我都试过了,结果如下:
    tin_dra(鹈觥)兄的方法最简单,而且结果也正确,我准备采用:)
    skyyoung(路人甲)和 yakuu(享受孤独)两位老兄的方法我试了,但结果不太对,可能是我用的不太对巴。wmlscript中我没有找到类似方法或函数,慢慢再说吧
    谢了
    给分!!