gpt4 book ai didi

perl - 在 Perl 中将混合的 ISO-8859-1 和 UTF-8 多行字符串强制转换为 UTF-8

转载 作者:行者123 更新时间:2023-12-01 11:08:47 25 4
gpt4 key购买 nike

考虑以下问题:

多行字符串 $junk 包含一些以 UTF-8 编码的行和一些以 ISO-8859-1 编码的行。我不知道先验哪些行在哪种编码中,因此需要启发式方法。

我想通过对 ISO-8859-1 行进行适当的重新编码,将 $junk 转换为纯 UTF-8。此外,如果处理过程中出现错误,我想提供“尽力而为的结果”而不是抛出错误。

我目前的尝试是这样的:

$junk = force_utf8($junk);

sub force_utf8 {
my $input = shift;
my $output = '';
foreach my $line (split(/\n/, $input)) {
if (utf8::valid($line)) {
utf8::decode($line);
}
$output .= "$line\n";
}
return $output;
}

显然,转换永远不会完美,因为我们缺少有关每一行原始编码的信息。但这是我们能得到的“最大努力结果”吗?

您将如何改进 force_utf8(...) 子程序的启发式/功能?

最佳答案

除了我会尝试使用 Encode::Guess 之外,我没有什么有用的建议可以提供。首先。

关于perl - 在 Perl 中将混合的 ISO-8859-1 和 UTF-8 多行字符串强制转换为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2555192/

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