tau*_*tau 1 php perl utf-8 iso-8859-1
我有几个文件需要从ISO-8859-1转换为UTF-8(当然没有BOM).但这是个问题.我有这么多文件(实际上是文件的混合,一些UTF-8和一些ISO-8859-1)我需要一种自动转换方式.不幸的是,我只安装了ActivePerl,对该语言的编码知之甚少.我可能能够安装PHP,但我不确定,因为这不是我的个人电脑.
只是你知道,我使用Scite或Notepad ++,但两者都没有正确转换.例如,如果我在捷克语中打开包含字符"ž"的文档并转到Notepad ++中的"转换为UTF-8"选项,则会错误地将其转换为不可读的字符.
有一种方法可以转换它们,但它很乏味.如果我打开带有特殊字符的文档并将文档复制到Windows剪贴板,然后将其粘贴到UTF-8文档中并保存,就可以了.对于我拥有的文档数量而言,这太繁琐(打开每个文件并复制/粘贴到新文档中).
有任何想法吗?谢谢!!!
如果包含字符'ž',则编码绝对不是ISO-8859-1("Latin 1"),但可能是CP1252("Win Latin 1").处理UTF8,ISO-8859-1和CP1252(可能甚至在同一文件中)的混合正是Encoding :: FixLatin Perl模块的设计目标.
您可以通过运行以下命令从CPAN安装模块:
perl -MCPAN -e "install 'Encoding::FixLatin'"
Run Code Online (Sandbox Code Playgroud)
然后,您可以编写一个使用Encoding :: FixLatin模块的简短Perl脚本,但是有一种更简单的方法.该模块带有一个命令fix_latin
,它在标准输入上采用混合编码,并在标准输出上写入UTF8.所以你可以使用这样的命令行来转换一个文件:
fix_latin <input-file.txt >output-file.txt
Run Code Online (Sandbox Code Playgroud)
如果您正在运行Windows,那么fix_latin命令可能不在您的路径中,并且可能没有通过pl2bat运行,在这种情况下您需要执行以下操作:
perl C:\perl\bin\fix_latin.pl <input-file.txt >output-file.txt
Run Code Online (Sandbox Code Playgroud)
需要为您的系统调整确切的路径和文件名.
fix_latin
在Linux系统上运行一大堆文件将是微不足道的,但在Windows上,您可能需要使用powershell或类似文件.
归档时间: |
|
查看次数: |
2273 次 |
最近记录: |