【问题标题】:Preserving accentuated letters when running a PERL script from linux terminal从 linux 终端运行 PERL 脚本时保留重音字母
【发布时间】:2015-02-10 20:55:27
【问题描述】:

我想从法语维基百科转储 XML 文件中获取纯文本文件。 为此,我正在应用 Perl 脚本

如果需要我可以提供完整的文件,我只添加了一行

tr/a-zàâééèëêîôûùç-/ /cs;

到这里的脚本:http://mattmahoney.net/dc/textdata.html

但是,当我在 linux 终端上运行时:

perl filterwikifr.pl frwiki.xml > frwikiplaintext.txt  

输出文本文件未正确打印重音字母。例如,我得到的是 catégorie 而不是 catégorie...

我也试过了:

perl -CS filterwikifr.pl frwiki.xml > frwikiplaintext.txt

没有更好的成功(以及其他变体而不是-CS...

【问题讨论】:

  • “纯文本”的概念实际上并不存在。输出文件必须以某种格式编码。你真的是说你只想要 7 位 ASCII 输出吗?
  • 我只希望保留强调的字母(我猜输出应该是 UTF-8,但我不是 unicode 专家)。如果我用 LibreOffice 打开文件,它可以工作,但是用文本编辑器,它会打印出奇怪的字符。
  • $LANGenv | grep LC_的内容是什么?
  • 您使用的是什么“文本编辑器”?如果 LibreOffice 正在读取它,那么很可能输出文件是正确的。
  • 我在 Ubuntu 14.04 中使用 gedit。

标签: linux perl unicode non-ascii-characters


【解决方案1】:

问题出在文本编辑器 gedit 上。

如果我不是直接打开文件,而是打开 gedit,然后转到“打开”并向下,在“字符编码”中,我选择 UTF-8 而不是“自动检测”,然后正确打印重音符号.

【讨论】:

    猜你喜欢
    • 2018-05-04
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 2018-11-17
    • 1970-01-01
    • 2017-11-14
    相关资源
    最近更新 更多