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

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

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

解密结果 暗黑西游记

去掉\u,还原十六进制就可以了。
发表于 2012-7-20 23:04:45 | 显示全部楼层
依照2楼的代码

  1. $str = "\u0020\u0041\u0075\u0074\u006f\u0049\u0074\u4e2d\u6587\u8bba\u575b"
  2. $a = StringSplit(StringReplace($str, "\u", Chr(44)), Chr(44))
  3. $b = ""
  4. For $i = 2 To $a[0]
  5.         $b = $b & ChrW("0x" & $a[$i])
  6. Next
  7. MsgBox(0, "", $b)
复制代码
发表于 2012-7-21 07:41:09 | 显示全部楼层
这么多答案 ,原理一样 我这效率可能偏慢 不过适合混杂编码文本处理
  1. Local $str = '\u6697\u9ed1\u897f\u6e38\u8bb0'

  2. ConsoleWrite(UniDecode($str) & @CRLF)

  3. Func UniDecode($sUni, $sExp = '\\u')
  4.         Local $sStr = ''
  5.         $sHex = StringRegExp($sUni, $sExp & '(\w{4})', 3)
  6.         If @error = 0 Then
  7.         For $i = 0 To UBound($sHex) - 1
  8.                         $sText = ChrW(Dec($sHex[$i]))
  9.                         $sStr = StringRegExpReplace($sUni, $sExp & $sHex[$i], $sText, 1)
  10.                         $sUni = $sStr
  11.         Next
  12.         EndIf
  13.         Return $sStr
  14. EndFunc   ;==>UniDecode
复制代码
发表于 2012-7-22 12:10:22 | 显示全部楼层
标记一下,备用
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2026-9-25 00:26 , Processed in 0.092705 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

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