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~非常感谢! 郁闷啊 发了几次问题 除了那个三木运算其他的都没人鸟{: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~ 这么快就解决啦.... 回复 3# lxz
在上晚自习的时候 突然有点想法 就回来弄了 没想到.... 就OK了 呵呵 碰巧 其实也花了很多时间了!
页:
[1]