使用 Perl 将文件转换为 UTF8 格式

发布于 2024-09-01 02:24:40 字数 54 浏览 5 评论 0原文

如何使用 Perl 将文件转换为 utf-8 格式?如何检查转换后的文件是否为utf-8格式?

How do I convert a file to its utf-8 format using Perl? and how do I check whether the converted file is in utf-8 format?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

凉世弥音 2024-09-08 02:24:40

不需要安装到 iconv 库(例如 Text::Iconv)的绑定,因为 Perl 已经自带了自己的字符编码库:编码。其中一部分是 picov,一个 iconv(1) 工作一样。使用它可以将文件批量转换为 UTF-8。 ANSI 只是一组 windows-125? 编码的愚蠢名称。您很可能拥有使用 windows-1252 编码的文件。示例:

piconv -f windows-1252 -t UTF-8 < input-file > output-file

如果元数据丢失,则必须使用启发式方法来确定文件内容的编码。 我一直在推荐 编码::检测

Installing bindings to the iconv library such as Text::Iconv is not necessary because Perl already comes with a character encoding library on its own: Encode. Part of it is piconv, an iconv(1) workalike. Use it to batch convert files to UTF-8. ANSI is just a stupid name for the group of windows-125? encodings. You most likely have files encoded in windows-1252. Example:

piconv -f windows-1252 -t UTF-8 < input-file > output-file

If metadata are missing, heuristics have to be used to determine the encoding of a file content. I have been recommending Encode::Detect.

提赋 2024-09-08 02:24:40

要进行转换,请查看 Text::Iconv

  use Text::Iconv;
  $converter = Text::Iconv->new("fromcode", "tocode");
  $converted = $converter->convert("Text to convert");

To do converting, take a look on Text::Iconv

  use Text::Iconv;
  $converter = Text::Iconv->new("fromcode", "tocode");
  $converted = $converter->convert("Text to convert");
遗弃M 2024-09-08 02:24:40

这取决于你得到的字符串。如果它是一个已上传的文件 - 我认为这段代码会有帮助。但如果它是来自网络/文本的文本,将其自身转换为 utf-8 (因为您正在使用 utf-8 ),那么您将在弄清楚它时遇到问题。

我通常使用:

使用编码::猜测

我的$enc=guess_encoding($string);

然后使用上面的代码,我这样做:

使用 Text::Iconv;
$converter = Text::Iconv->new($enc,"utf-8");
$converted = $converter->convert("要转换的文本");

仅供参考 utf-8 列表可以在这里找到:

http: //www.fileformat.info/info/charset/UTF-8/list.htm?start=1024

http://www.utf8-chartable.de/unicode-utf8-table.pl?start=1024& ;number=1024&utf8=string-literal&unicodeinhtml=dec

that depends on the string you got. if it's a file been uploaded - i think this code will help. but if it's a text from web / text that converted itself to utf-8 ( because you're working on utf-8 ) then you'll have a problem figuring it out.

i usually use:

use Encoding::Guess

my $enc = guess_encoding($string);

and then with the above code, i do:

use Text::Iconv;
$converter = Text::Iconv->new($enc,"utf-8");
$converted = $converter->convert("Text to convert");

FYI utf-8 list can be found here:

http://www.fileformat.info/info/charset/UTF-8/list.htm?start=1024

http://www.utf8-chartable.de/unicode-utf8-table.pl?start=1024&number=1024&utf8=string-literal&unicodeinhtml=dec

九歌凝 2024-09-08 02:24:40

使用编码模块,您可以轻松地以不同的编码进行编码

,例如;

my $str = "A string in Perl internal format ....";
my $octets = encode("utf-8",$str,Encode::FB_CROAK);

要检查 utf 你可以使用函数

is_utf8($str,Encode::FB_CROAK) 

using Encode module you can easily encode in different encoding

e.g;

my $str = "A string in Perl internal format ....";
my $octets = encode("utf-8",$str,Encode::FB_CROAK);

to check for utf you can use function

is_utf8($str,Encode::FB_CROAK) 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文