Perl iso-8859-1 字符串比较

标签 perl character-encoding

我写了一个小程序来通过 /usr/share/dict/words 寻找回文

while(<>){
  chomp;
  print "$_\n" if $_ eq reverse;
}

但是,这不适用于以 Latin-1 (ISO-8859-1) 编码的丹麦语单词列表。 只是想知道我将如何让它发挥作用?

最佳答案

使用locale ?也许还可以在 STDIN 上打开 Unicode 标志:

use Modern::Perl;
use locale;
binmode(STDIN, ":utf8");
while (<>) {
    chomp;
    say if $_ eq reverse;
}

如果没有 binmode,它可能是一个不错的单行代码:

perl -Mlocale -nE 'chomp; say if $_ eq reverse'

关于Perl iso-8859-1 字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2202702/

相关文章:

Perl 脚本生成所有字符(包括非字母): How do I transform a number into base 27?

database - 使用 Perl 比较来自 2 个不同数据库的大约 700,000 行的更快方法是什么?

perl - 从 perl 中的外部 *nix 命令获取 STDOUT、STDERR 和响应代码

perl - HTTP::Tiny可以用来上传文件吗?

mysql - 'character set' 和 'default character set' 之间的区别

perl - 如何将导入语义实现到当前 block 范围?

reactjs - React webpack bundle 不是 utf-8

php - 如何从ajax形式获取非英文字符到MySQL

ruby-on-rails - 如何在电子邮件的主题行中加入中文字符?

python - 奇怪的 UTF-8 单行解释器错误