【问题标题】:Convert 4 digit unicode escape to actual symbol将 4 位 unicode 转义转换为实际符号
【发布时间】:2014-07-30 03:02:03
【问题描述】:

如何将 4 位 unicode 转义序列转换为 AutoIt 中的实际符号 例如"\u00a5" to "¥"

【问题讨论】:

  • 你是如何获得转义序列输入的?你想在哪里输出?
  • 我的 autoIt 代码是从 Python 代码调用的。 AutoIt 代码作为子进程运行。
  • 我会先在 Python 中进行转换,和/或只使用 use a Python package 进行键盘和鼠标自动化。
  • 如何在python中进行同样的转换?
  • 它适用于拉丁字符,但不适用于这个符号

标签: autoit


【解决方案1】:

你是说这个吗?

    #include <MsgBoxConstants.au3>

Local $sText = ""
For $i = 256 To 2048
    $sText = $sText & ChrW($i) ; Or $sText &= ChrW($i) can be used as well.
Next
MsgBox($MB_SYSTEMMODAL, "Unicode chars 256 to 2048", $sText) ; Display the unicode characters between 256 to 2048.

或者这个:Special chars in Autoit

还是这个:?

#include <WinAPI.au3>
Local $str = "My name is \u00a5"
Local $utfStr = Execute("'" & StringRegExpReplace($str, "(\\u([[:xdigit:]]{4}))", "' & ChrW(0x$2) & '") & "'")
Local $ansiStr = _WinAPI_WideCharToMultiByte($utfStr)
MsgBox(64, "Unicode2Ansi", $utfStr & @CRLF & $ansiStr)
Exit

【讨论】:

  • 我正在寻找您提到的第三部分。有用。谢谢
  • 如果字符串中有',最后一个解决方案不起作用。你必须先逃脱它。
  • 您可以将第三行更改为:Local $utfStr = Execute("'" & StringRegExpReplace(StringReplace($str,"'","''"), "(\\u( [[:xdigit:]]{4}))", "' & ChrW(0x$2) & '") & "'") .
猜你喜欢
  • 2014-09-21
  • 1970-01-01
  • 2015-03-07
  • 2020-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-11
  • 2011-12-19
相关资源
最近更新 更多