英文:
How to process special characters in vbscript
问题
我正在编写一个查找和替换的工作流程,需要能够查找特殊字符,其中之一是带有两个点的字母y。
https://www.compart.com/en/unicode/U+00FF
我目前在Notepad++中使用宏来进行查找和替换,但我需要在这个过程中更多的自动化。
Notepad++中的字符代码显示为ÿ
'查找和替换
Const ForReading = 1
Const ForWriting = 2
Set objFile = objFSO.OpenTextFile("C:\TEST\" & JobNo & " " & strfolder & "\CustomerOriginals\" & FN, ForReading)
strText = objFile.ReadAll
objFile.Close
strText = Replace(strText, ChrW(&H00FF), "")
Set objFile = objFSO.OpenTextFile("C:\TEST\" & JobNo & " " & strfolder & "\CustomerOriginals\" & FN, ForWriting)
objFile.WriteLine strText
objFile.Close
任何帮助将不胜感激。
英文:
I am writing a find and replace workflow and it needs to be able to find special characters, one of which is a y with two dots above it.
https://www.compart.com/en/unicode/U+00FF
I currently use a MACRO in Notepad++ to do this find and replace, but I need a bit more automation in this process.
The character code in Notepad++ shows ÿ
'Find and Replace
Const ForReading = 1
Const ForWriting = 2
Set objFile = objFSO.OpenTextFile("C:\TEST\" & JobNo & " " & strfolder & "\CustomerOriginals\" & FN, ForReading)
strText = objFile.ReadAll
objFile.Close
strText = Replace(strText, ChrW(00FF), "")
Set objFile = objFSO.OpenTextFile("C:\TEST\" & JobNo & " " & strfolder & "\CustomerOriginals\" & FN, ForWriting)
objFile.WriteLine strText
objFile.Close
Any help would be greatly appreciated.
答案1
得分: 0
你可以使用ADO在VBScript中读取和写入UTF-8文件,参考StackOverflow上的其他答案:
https://stackoverflow.com/a/4127011/15764378
https://stackoverflow.com/a/13855268/15764378
https://stackoverflow.com/a/15230319/15764378
但是,只要脚本本身以UTF-8格式保存,VBScript就可以处理UTF-8进行简单的读取、替换和写入,例如:
ReplaceChar.vbs
Const ForReading = 1
Const ForWriting = 2
Set oFSO = CreateObject("Scripting.FileSystemObject")
FP = "C:\Test\Test.txt"
Text = oFSO.OpenTextFile(FP,ForReading).ReadAll
Text = Replace(Text, "ÿ", "")
Text = Replace(Text, "🙂", "👍")
oFSO.OpenTextFile(FP,ForWriting).Write(Text)
你也可以考虑使用PowerShell来进行字符替换。以下是一个示例:
ReplaceChar.ps1
$FP = 'C:\Test\Test.txt'
$Text = Get-Content -Path $FP
$Text = $Text -replace 'ÿ', ''
Set-Content -Path $FP -Value $Text
英文:
You can use ADO to read and write UTF-8 files in VBScript, as per other answers on SO:
https://stackoverflow.com/a/4127011/15764378
https://stackoverflow.com/a/13855268/15764378
https://stackoverflow.com/a/15230319/15764378
But VBScript will handle UTF-8 for a simple read, replace, write as per this question, as long as the script itself is saved as UTF-8. Example:
ReplaceChar.vbs
Const ForReading = 1
Const ForWriting = 2
Set oFSO = CreateObject("Scripting.FileSystemObject")
FP = "C:\Test\Test.txt"
Text = oFSO.OpenTextFile(FP,ForReading).ReadAll
Text = Replace(Text, "ÿ", "")
Text = Replace(Text, "🙂", "👍")
oFSO.OpenTextFile(FP,ForWriting).Write(Text)
You may also want to consider using PowerShell to do the character replacement. Here's an example:
ReplaceChar.ps1
$FP = 'C:\Test\Test.txt'
$Text = Get-Content -Path $FP
$Text = $Text -replace 'ÿ', ''
Set-Content -Path $FP -Value $Text
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论