相关疑难解决方法(0)

将PowerShell的默认输出编码更改为UTF-8

默认情况下,当您将命令的输出重定向到文件或将其传递到PowerShell中的其他内容时,编码为UTF-16,这是无用的.我想把它改成UTF-8.

它可以通过替换>foo.txt语法来逐个进行,| out-file foo.txt -encoding utf8但是每次都必须重复这是很尴尬的.

在PowerShell中设置内容的持久方法是将它们放入\Users\me\Documents\WindowsPowerShell\profile.ps1; 我已经验证这个文件确实是在启动时执行的.

有人说输出编码可以设置,$PSDefaultParameterValues = @{'Out-File:Encoding' = 'utf8'}但我已经尝试过,它没有任何效果.

https://blogs.msdn.microsoft.com/powershell/2006/12/11/outputencoding-to-the-rescue/谈到$OutputEncoding乍一看似乎应该是相关的,但后来谈到输出被编码在ASCII中,这不是实际发生的事情.

如何设置PowerShell使用UTF-8?

powershell utf-8 character-encoding

70
推荐指数
1
解决办法
8万
查看次数

为什么Powershell重定向>>会更改文本内容的格式?

我想使用重定向附加>>或写入>来写入txt文件,但是当我这样做时,我收到了奇怪的格式“ \ x00a \ x00p ...”

我成功使用了set-content和add-content,为什么它们按预期运行,但>>和>重定向运算符却没有运行?

使用Powershell'cat'以及简单的python打印显示输出。

rocket_brain> new-item test.txt
rocket_brain> "appended using add-content" | add-content test.txt
rocket_brain> cat test.txt

 appended using add-content
Run Code Online (Sandbox Code Playgroud)

但是如果我使用重定向附加>>

rocket_brain> "appended using redirect" >> test.txt
rocket_brain> cat test.txt

 appended using add-content
 a p p e n d e d   u s i n g   r e d i r e c t

Run Code Online (Sandbox Code Playgroud)

简单的python脚本:read_test.py

with open("test.txt", "r") as file:   # open test.txt in readmode
    data = file.readlines()           # append each line to the …
Run Code Online (Sandbox Code Playgroud)

powershell io-redirection

3
推荐指数
1
解决办法
124
查看次数

源代码中字符串文字的字符编码问题(utf8 无 bom)

$logstring = Invoke-Command -ComputerName $filesServer   -ScriptBlock {\n        param(\n            $logstring,\n            $grp\n        )\n\n    $Klassenbuchordner = "KB " + $grp.Gruppe\n    $Gruppenordner = $grp.Gruppe\n    $share = $grp.Gruppe\n    $path = "D:\\Gruppen\\$Gruppenordner"\n\n    if ((Test-Path D:\\Dozenten\\01_Klassenb\xc3\xbccher\\$Klassenbuchordner) -eq $true)\n    {$logstring += "Verzeichnis f\xc3\xbcr Klassenb\xc3\xbccher existiert bereits"}\n    else {\n        mkdir D:\\Dozenten\\01_Klassenb\xc3\xbccher\\$Klassenbuchordner\n        $logstring += "Klassenbuchordner wurde erstellt!"\n    }} -ArgumentList $logstring, $grp\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的目标是测试目录是否存在并根据需要创建它。

\n\n

问题是路径包含德文字母(元音变音),目标服务器无法正确识别这些字母。

\n\n

例如,服务器收到路径"D:\\Dozent\\01_Klassenb\xc3\x83\xc2\xbccher"而不是预期的"D:\\Dozent\\01_Klassenb\xc3\xbccher".

\n\n

如何强制使用正确的 UTF-8 编码?

\n

powershell utf-8 character-encoding codepages invoke-command

1
推荐指数
1
解决办法
2193
查看次数