找回密码
 加入
搜索
查看: 8595|回复: 5

[效率算法] u6697\u9ed1\u897f\u6e38\u8bb0 这样的编码如何转换为中文?

  [复制链接]
发表于 2012-7-20 20:50:28 | 显示全部楼层 |阅读模式
如何在AU3上里面转换出来!
发表于 2012-7-20 21:05:43 | 显示全部楼层
$str="\u6697"
$str=StringReplace($str,"\u","0x")
MsgBox(0,"",ChrW($str))
这样试下
发表于 2012-7-20 22:34:10 | 显示全部楼层
本帖最后由 lpxx 于 2012-7-20 22:37 编辑

解密结果 暗黑西游记

去掉\u,还原十六进制就可以了。
发表于 2012-7-20 23:04:45 | 显示全部楼层
依照2楼的代码
$str = "\u0020\u0041\u0075\u0074\u006f\u0049\u0074\u4e2d\u6587\u8bba\u575b"
$a = StringSplit(StringReplace($str, "\u", Chr(44)), Chr(44))
$b = ""
For $i = 2 To $a[0]
        $b = $b & ChrW("0x" & $a[$i])
Next
MsgBox(0, "", $b)
发表于 2012-7-21 07:41:09 | 显示全部楼层
这么多答案 ,原理一样 我这效率可能偏慢 不过适合混杂编码文本处理
Local $str = '\u6697\u9ed1\u897f\u6e38\u8bb0'
 
ConsoleWrite(UniDecode($str) & @CRLF)
 
Func UniDecode($sUni, $sExp = '\\u')
        Local $sStr = ''
        $sHex = StringRegExp($sUni, $sExp & '(\w{4})', 3)
        If @error = 0 Then
        For $i = 0 To UBound($sHex) - 1
                        $sText = ChrW(Dec($sHex[$i]))
                        $sStr = StringRegExpReplace($sUni, $sExp & $sHex[$i], $sText, 1)
                        $sUni = $sStr
        Next
        EndIf
        Return $sStr
EndFunc   ;==>UniDecode
发表于 2012-7-22 12:10:22 | 显示全部楼层
标记一下,备用
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 09:55 , Processed in 0.093548 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表