script to save file as unicode
你知道我可以任何方式或通过programmatically scrirpt变换一套文本文件保存为ANSI到Unicode的字符编码,编码?
我想做一个我做的,当我打开一个记事本文件选择和保存它在Unicode文件。
这可能对您有用,但请注意,它将抓取当前文件夹中的每个文件:
1 2 |
为简洁起见,使用别名也一样:
StevenMurawski建议使用
Out-File 将尝试格式化它接收到的输入。Out-File 的默认编码是基于Unicode的,而Set-Content 使用系统的默认编码。
这里有一个例子,假设文件
1 2 3 4 5 6 7 8 | PS> [system.string] | Out-File test.txt PS> Get-Content test.txt IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.Object # test.txt encoding is Unicode-based with BOM |
1 2 3 4 5 6 | PS> [system.string] | Set-Content test.txt PS> Get-Content test.txt System.String # test.txt encoding is"ANSI" (Windows character set) |
实际上,如果不需要任何特定的Unicode编码,也可以执行以下操作将文本文件转换为Unicode:
1 | PS> Get-Content sourceASCII.txt > targetUnicode.txt |
最简单的方法是获取内容"path/to/text/file"out file"name/of/file"。
out文件有一个-encoding参数,默认值为unicode。
如果你想编写一批脚本,你可以做一些类似的事情
1 2 3 4 5 | $files = get-childitem 'directory/of/text/files' foreach ($file in $files) { get-content $file | out-file $file.fullname } |
您可以创建一个新的文本文件,并将原始文件中的字节写入新文件,在每个原始字节之前放置一个' '(假定原始文本文件是英文的)。
使用System.IO.StreamReader(读取文件内容)类和System.Text.Encoding.Encoding(创建进行编码的编码器对象)基类。
您可以使用ICONV。在Windows上,您可以在Cygwin下使用它。
1 | iconv -f from_encoding -t to_encoding file |
伪代码…
dim系统,文件,内容,新文件,旧文件
const for reading=1,for writing=2,for appending=3const ansifile=-2,unicodefile=-1
设置system=createObject("scripting.filesystemObject…
set file=system.getfile("text1.txt")。
设置oldfile=file.openastextstream(用于读取,ansifile)
contents=oldfile.readall()。
关闭文件
System.CreateTextFile"text1.txt"
set file=system.getfile("text1.txt")。
设置newfile=file.openastextstream(用于写入,unicodefile)
newfile.write内容
关闭新文件
希望这种方法能奏效。