我试过Google和StackOverflow推荐的所有内容(包括使用Encode)。我的代码工作,但它只是使用UTF8,我得到宽字符警告。我知道如何解决这些警告,但我并没有使用UTF8来处理其他任何事情,所以我只想将其转换,而不必修改其余的代码来处理它。这里是我的代码:在Perl中将UTF8字符串转换为ASCII
my $xml = XMLin($content);
# Populate the @titles array with each item title.
my @titles;
for my $item (@{$xml->{channel}->{item}}) {
my $title = Encode::decode_utf8($item->{title});
#my $title = $item->{title};
#utf8::downgrade($title, 1);
Encode::from_to($title, 'utf8', 'iso-8859-1');
push @titles, $title;
}
return @titles;
注释掉你可以看到我试过的其他东西。我很清楚,我不知道我在这里做什么。我只想结束一个普通的旧ASCII字符串。任何想法将不胜感激。谢谢。
所以基本上这是我怀疑的。我对这个问题的理解很遥远。那么,谢谢你花时间澄清。出于某种原因,我认为我能够将我的UTF8字符串强制转换为ASCII格式,这听起来像是一场混乱的黑客攻击。我想我只会打消并处理UTF8编码。 – 2010-09-04 16:40:19
如果您必须将UTF-8转换为ASCII,则需要[Text :: Unidecode](http://search.cpan.org/perldoc?Text::Unidecode)。 – cjm 2010-09-04 17:59:02
@cjm正是我需要的。这个将utf8字符转换为最接近的可视ASCII替代字符。非常感谢! – 2016-02-08 19:16:43