【问题标题】:How to change file encode from perl script [closed]如何从 perl 脚本更改文件编码 [关闭]
【发布时间】:2013-05-17 12:12:48
【问题描述】:

我正在将以下代码写入我的脚本,但它不起作用。我们的要求是需要将文件从 UTF-8 转换为 ANSI

iconv -c -f  UTF-8 -t MS-ANSI $file > $file2;

如何在 perl 中做到这一点?

【问题讨论】:

  • $converter = Text::Iconv->new("UTF-8", "MS-ANSI");,此语句不起作用..请建议,已包含库..跨度>
  • 我无法重现该声明的任何失败。显然,您必须编写脚本的其余部分。
  • 定义“不工作”。

标签: perl text utf-8


【解决方案1】:

有很多选择。 Encodeopen 的文档将帮助您找到一个。

我想我会这样做。

#!/usr/bin/perl

use strict;
use warnings;
use 5.010;

binmode STDOUT, ':encoding(cp1252)';
binmode STDIN,  ':encoding(UTF-8)';

print while <>;

【讨论】:

  • 嗨 Dave,脚本已成功完成,但文件未从 UTF-8 转换为 ANSI..
  • 你怎么知道的?您正在运行哪些测试?它在这里工作正常。 “ANSI”是指 Windows 代码页 1252。如果不是这种情况,则需要更改 STDOUT 行中的编码。
  • 嗨戴夫,感谢您的帮助,但仍然无法正常工作,我们在这里使用模块使用 5.008;正因为如此..请提出建议。
  • 你的意思是 5.8。没有 5.008。这是一个相当重要的信息,需要忽略。我不知道何时添加了自动编码 binmode 的东西,但我敢打赌它是在 5.8 之后很久。您将不得不考虑使用 Encode.pm 中的 decodeencode 函数。或者,更好的是,考虑升级到不到 10 年的 Perl 版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 2020-01-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多