我想在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
这个问题有什么好的解决方案吗?一行代码可能吗? 提前谢谢!
答案 0 :(得分:1)
Encoding
类不解码转义序列,您必须通过自己解析字符串来手动执行。就此而言,VB字符串使用UTF-16,因此您根本不需要使用Encoding
类。只需将字符2-7("\u00fc"
)替换为单个&H00FC
字符,将字符9-14("\u00f6"
)替换为单个&H00F6
字符等,然后您就可以了完成。每个\uXXXX
序列代表一个Unicode代码点。