JBOY1009 发表于 2011-12-4 16:17:09

AU3 如何转码 \u 开头的编码 [已解决]

本帖最后由 JBOY1009 于 2011-12-4 21:36 编辑

不知道标题能不能表达清楚   说下我的问题

就是将下面的这段JS代码转码回去

<script>xwbPipe.start({"basePath":"\/","routeMode":0,"routeVname":"m","akey":"84142479","shortLink":"","loginCfg":"3","webName":"\u6dd8\u96f6\u98df_\u5fae\u535a","uid":"1965315743","siteUid":null,"siteUname":"Guest","siteName":"DZ\u6d4b\u8bd5\u7ad9","siteReg":"http:\/\/demo.discuz.cn\/utf8\/7.2\/register.php?referer=http%3A%2F%2Ftaolingshi.sinaapp.com%2Findex.php%3Fm%3Dpub","sinaReg":"\/index.php?m=account.goSinaReg","page":"custom","remind":0,"maxid":"3381131007256503"});</script>

上面的代码应该是通过 JSON的编码转的我想转回去   就是只要将类似 \u6dd8 只要的转一下就好 其他的没关系   知道的麻烦说下啊 O(∩_∩)O~非常感谢!

JBOY1009 发表于 2011-12-4 21:33:26

郁闷啊 发了几次问题 除了那个三木运算其他的都没人鸟{:face (229):}

小白总算解决这个问题了查了下是 Unicode 编码 解码方法参照 chinaz(站长站) 的在线工具写的 (javascript)   把他的用AU3的语法套了边代码如下不知道有没有BUG

原javascript 代码
function asciiConvertNative() {
    var asciicode = getid("asciicode").value.split("\\u");
    var nativeValue = asciicode;
    for (var i = 1; i < asciicode.length; i++) {
      var code = asciicode;
      nativeValue += String.fromCharCode(parseInt("0x" + code.substring(0, 4)));
      if (code.length > 4) {
            nativeValue += code.substring(4, code.length);
      }
    }
    getid("nativecode").value = nativeValue;
}


AU3的解码方式
Local $asciicode = StringSplit ('\u8f6c\u7801\u6210\u529f\u4e86\u5417?!', '\u', 1)
Local $nativeValue = $asciicode
For $i = 2 To ubound($asciicode)-1
        Local $code = $asciicode[$i]
        $nativeValue &= ChrW(Int('0x'&StringMid ($code, 1, 4)))
        If StringLen($code) > 4 Then
                $nativeValue &= StringMid($code,5, StringLen($code))
        EndIf

Next

MsgBox(False,'Unicode解码',$nativeValue)
解码方式貌似先转为 16进制在按ASCII的解码方式去解的 以前一直不了解Unicode是个什么东西{:face (394):}   有错请大家纠正....O(∩_∩)O~

lxz 发表于 2011-12-4 21:36:45

这么快就解决啦....

JBOY1009 发表于 2011-12-4 21:55:36

回复 3# lxz


    在上晚自习的时候 突然有点想法 就回来弄了 没想到.... 就OK了 呵呵 碰巧 其实也花了很多时间了!
页: [1]
查看完整版本: AU3 如何转码 \u 开头的编码 [已解决]