在vbs中迭代unicode

在vbs中迭代unicode,unicode,vbscript,Unicode,Vbscript,我需要将重音字母转换为常规的对应字母,即À转换为A。我计划使用一长串替换语句,如 orig_string = Replace(orig_string, "Ã", "a", 1, -1, vbTextCompare) 或者某种数组来完成同样的事情。我试图在access vb编辑器中粘贴字符列表ấấặắảạḁầẫẩậằẵẳ 但是我得到了一份工作??????????????????。也就是说,我想尝试使用类似于 Function convert_unicode(sIn As String) As

我需要将重音字母转换为常规的对应字母,即À转换为A。我计划使用一长串替换语句,如

orig_string = Replace(orig_string, "Ã", "a", 1, -1, vbTextCompare)  
或者某种数组来完成同样的事情。我试图在access vb编辑器中粘贴字符列表ấấặắảạḁầẫẩậằẵẳ 但是我得到了一份工作??????????????????。也就是说,我想尝试使用类似于

Function convert_unicode(sIn As String) As String
    Dim r As New RegExp, a_patern As String
    Dim colMatches As MatchCollection

    Debug.Print sIn

    **For a_patern = "\u00C0" To "\u00C5" <-pseudo code**
        With r
            .Pattern = a_patern
            .IgnoreCase = True
            .Global = True
            .MultiLine = False
            convert_unicode = .Replace(sIn, "A")
        End With
    Next a_patern

   **For a_patern = "\u00C8" To "\u00CB"  <-pseudo code**
        With r
            .Pattern = a_patern
            .IgnoreCase = True
            .Global = True
            .MultiLine = False
            convert_unicode = .Replace(sIn, "B")
        End With
    Next a_patern

    Debug.Print convet_unicode
End Function

替换循环可能看起来有点像这样:

s = "..."

For u = &h00c0 To &h00c5
  s = Replace(s, ChrW(u), "A")
Next

ChrW函数将字符代码转换为宽/Unicode字符。

如果文件处于utf16模式,则使用数组应该可以。您需要将脚本文件以Unicode格式保存在记事本中。例如,您可以在“另存为”对话框底部中间的下拉列表中选择编码。如果你的编辑器不支持Unicode:找一个支持Unicode的编辑器。编译完需要替换的字符列表后,我意识到出于我的目的,这种类型的循环不起作用,因为每个字母的重音版本都分散在Unicode图表上,所以我会回去整理Unicode数组。Ansgar感谢您提供了一个答案,很抱歉我没有使用它。我对MS Access不够精通,不知道如何修改他们的IDE