windows - 与 Powershell 连接时的编码问题

标签 windows powershell encoding concatenation utf-16

在一堆文件中,我想将文件名以 1 开头的所有文件连接到一个名为 1.txt 的文本文件中。源文件的编码是 UTF16-LE,这也应该是目标文件的编码。但是使用我的 powershell 脚本(下面的代码)会生成一个带有缺陷特殊符号(变音符号等)的 UTF-8 文件

这是我的代码:

Powershell.exe cat  Disc:\data\files\1\filename-1* > Path:\here\1.txt

我发现了几种使用 Get-Content 和 Out-File 的方法,但无法使这些命令适应我的通配符需求。据我了解,cat 是 get-content 的标准别名,所以我想知道为什么我不能用 get-content 替换 cat。此外,get-content 有一个 -Encoding CharSet 参数,但像这样更改我的代码:

Powershell.exe cat  Disc:\data\files\1\filename-1* > Path:\here\1.txt -encode Unicode

(这是 UTF-16 格式小端字节序的字符集)没有改变任何东西。 BigEndianUnicode 或 UTF8 也没有。

感谢您的帮助!

最佳答案

使用重定向运算符 (>) 时不能指定编码。请改用 Out-File cmdlet:

Get-Content C:\path\to\input* | Out-File D:\path\to\output.txt -Encoding Unicode

关于windows - 与 Powershell 连接时的编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27225116/

相关文章:

windows - 从 .bat 脚本运行 Powershell 命令不起作用,但是当我直接在命令行中键入它时它起作用

java - UTF-8字符串将非英文字符转换为无效字符

javascript - Node.js:crypto.pbkdf2 十六进制密码

windows - 使用 Lua 执行 powershell 命令

c++ - 调用 OpenCV 方法 cvLoadImage() 时 CoInitializeEx 失败

windows - 用于查看特定端口的命令行

Windows 按端口号杀死进程

windows - 在批处理脚本中获取 Powershell 变量值

json - VMWare对象上的ConvertTo-Json不起作用

JavaMail 从字符串发送邮件附件 - 编码 UTF-8