Gaš*_*rin 10 string powershell encoding character-encoding output
我正在使用一个简单的脚本,该脚本在日志文件中输出当前目录的路径:
(Get-Item .).FullName | out-file "C:\windows\system32\rcwm\rc.log" -append
Run Code Online (Sandbox Code Playgroud)
这在大多数情况下都有效。然而,看似随机,追加将导致在输出字符串中的每个字符后添加空格。我的rc.log文件将如下所示:
C:\Users\root\Desktop\2222
C : \ U s e r s \ r o o t \ D e s k t o p \ 2 2 2 2
Run Code Online (Sandbox Code Playgroud)
请注意,我如何两次输出相同的目录名,并且日志文件中的结果不同。
一旦发生这种情况,附加到日志文件中的每个后续字符串的字符之间都会有空格。
可能是什么问题?
Gaš*_*rin 10
一段时间后,我决定尝试更改 powershell 在日志文件中输出字符串的编码。
\n我仍然不明白为什么或如何 powershell 决定使用哪种编码,但最好让powershell 知道你想使用哪种编码:
\n(Get-Item .).FullName | out-file "C:\\windows\\system32\\rcwm\\rc.log" -append -Encoding UTF8\nRun Code Online (Sandbox Code Playgroud)\n对我来说,UTF-8 似乎效果最好。
\nC:\\Users\\root\\\xc5\xa1\xc4\x8d (UTF8)\nC:\\Users\\root\\?? (ASCII)\nC : \\ U s e r s \\ r o o t \\ a (UNICODE)\n C : \\ U s e r s \\ r o o t \\ a (UTF32)\nC:\\Users\\root\\\xc5\xa1\xc4\x8d\\\xc5\x91\\~2\\\xc3\xbc\xc4\x93 (UTF8)\nRun Code Online (Sandbox Code Playgroud)\n\n编辑:\n此后我遇到了“chcp”命令(更改代码页)。UTF-8 的代码是 65001。\n有关详细信息,您可以在此处查看此问题。
\n| 归档时间: |
|
| 查看次数: |
10861 次 |
| 最近记录: |