如一个字符串是44414B4A3133363344313336335320676D4F33534C6675504C7544504456714264625852594B6343566961436E635547566146573069705A3079,是用ASCII编码的

解决方案 »

  1.   

    上面那个字符串是用ASCII编码的,现在我想将它进行解码,而且是要java语言写的程序
      

  2.   


    try {
    String str = "44414B4A3133363344313336335320676D4F33534C6675504C7544504456714264625852594B6343566961436E635547566146";
    System.out.println(new String(str.getBytes("ASCII"), "GBK"));
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }这个不知道符合要求不?
      

  3.   


    public static String unPack(String a) {
    String un = new String("");
    char[] cc = a.toCharArray();
    for (int i = 0; i < (int)(cc.length/2); i++) {
    un+= (char)(t2s(cc[i*2])*16+t2s(cc[i*2+1]));
    }
    return un;
    } public static int t2s(char a){
    char[] s={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

    for (int i = 0; i < s.length; i++) {
    if(a==s[i]){
    return i;
    }
    }
    return 0;
    } public static void main(String[] args) {
    System.out.print(unPack("44414B4A3133363344313336335320676D4F33534C6675504C7544504456714264625852594B6343566961436E635547566146573069705A3079"));
    }结果:DAKJ1363D1363S gmO3SLfuPLuDPDVqBdbXRYKcCViaCncUGVaFW0ipZ0y
      

  4.   

    这个是一个短信内容,是sp发给普通用户的,我想应该是中文,DAKJ1363D1363S 这样的字符串我也能解出来,但很显然应该是不对的
      

  5.   

    那你要的不是ascii的解码了就
      

  6.   

    你的意思是说字符跟汉字混合以后的解码吧?utf,unicode,gbk,iso8859-1,你是不是想找一个万能解码器了,不管是什么扔进出出来的都是想象中的?呵呵
      

  7.   

    上面那个是一个纯ASCII字符串,我就是想将它解码
      

  8.   

    ASCII编码其实不是正规编码名称吧,是指的机器默认编码。我猜想你这个44414B4A3133363344313336335320676D4F33534C6675504C7544504456714264625852594B6343566961436E635547566146573069705A3079应该是16进制数吧
    每两个截取,转成整形,赋值到字节数组中,再构造字符串(指定不同的编码)看看。
      

  9.   

    你还是先看对面发来的时候的是什么格式的规范吧。PDU的解码跟文本的确实不一样,DCB里有定义的
      

  10.   

    算了,不理你了。你要ascii的解码,给你解出来了你又说是很显然的不对,不地道
      

  11.   


    哎,是你没明白我的意思,我要的不是把这个字符串转换成Ascii编码,是说这个字符串已经是Ascii编码的形式了
      

  12.   

    我理解你的意思,也试过,但没搞定。他的意思是它给出来的那个字符串是在ASCII编码环境下能看到的字符串效果,然后转成其他格式的编码。
    但在java里,String类是按照unicode进行编码的。所以虽然你所见是那样,但构造一个String对象后,并不是ASCII码的原始字符串了。
      

  13.   

    好像不对啊?ascii是8位,unicode是16位,utf-8是8-16位的变长.肯定是没有重复的,utf-8中ascii是不变的,unicode中前面要加0x00凑成16位,你这样解,希望解出来的正确结果到底是什么呢?