【问题标题】:Converting Unicode escaped characters (\u#### format) into UTF-8 in VBA?在 VBA 中将 Unicode 转义字符(\u#### 格式)转换为 UTF-8?
【发布时间】:2014-03-15 16:15:43
【问题描述】:

我想在 VBA 中将“text”变量中的特殊字符恢复正常!

    Dim text As String
    text = "Cs\u00fct\u00f6rt\u00f6k" 
    text = Encoding.utf8.GetString(Encoding.ASCII.GetBytes(text)) 
    MsgBox text 
    'Csütörtök would be the correct result

但在上面的代码中,Excel 2013 给了我一个关于“编码”方法的错误.. 无法解析它。

如果你输入文本值,它应该像这个在线转换器一样工作: http://www.rapidmonkey.com/unicodeconverter/reverse.jsp

这个问题有什么好的解决办法吗?可能是一行代码? 提前致谢!

【问题讨论】:

    标签: string vba unicode utf-8 encode


    【解决方案1】:

    Encoding 类不解码转义序列,您必须自己手动解析字符串。就此而言,VB 字符串使用 UTF-16,因此您根本不需要使用 Encoding 类。只需将字符 2-7 ("\u00fc") 替换为单个 &H00FC 字符,将字符 9-14 ("\u00f6") 替换为单个 &H00F6 字符等,然后就完成了。每个 \uXXXX 序列代表一个 Unicode 代码点。

    【讨论】:

    • 感谢您的回答! :)
    猜你喜欢
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 2013-07-19
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    相关资源
    最近更新 更多