gpt4 book ai didi

linux - perl中linux环境下windows命令输出的转换

转载 作者:太空宇宙 更新时间:2023-11-04 04:38:48 25 4
gpt4 key购买 nike

我面临一个问题。我正在 Linux 上编写一个 Perl 程序,在远程 Windows 计算机上执行 Windows 命令并捕获 Perl 变量中的输出。但每2个字符之间就有一些未知字符。这个角色的介绍是什么?请帮忙。

最佳答案

Windows 使用 UTF-16LE 对 Unicode 字符串进行编码。您将需要使用Encode解码它们的模块

信息如此之少,很难知道该提供什么建议,但总的来说,你可以写

use Encode qw/ decode :fallbacks /;

my $text = decode('UTF-16', $windows_bytes, FB_CROAK);

据我所知,Windows 始终使用字节顺序标记 (BOM),因此我仅指定UTF-16。如果没有 BOM,我需要自己使用 UTF-16LE

指定字节顺序

decode 的第三个参数定义了数据是指定编码的无效示例时的行为。在这种情况下,发牢骚是最安全的

或者,如果您要打开 UTF-16 编码的文件,则应使用 :encoding(UTF-16):crlf 打开,如下所示

open my $fh, '<:encoding(UTF-16):crlf', $filename;

关于linux - perl中linux环境下windows命令输出的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37614036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com