Ton*_*ark 1 perl input file-encodings
我使用perl脚本读取文件,但我不确定该文件的编码方式.基本上,我的文件是书名列表,但每本书都有其他相关信息(作者,出版日期)等).因此,每本书的标题都在书的一个独立的数据块中.所以我逐行遍历文件,直到找到正则表达式'/Book Title: (.*)/'并取出paren中的内容.然后,我创建一个单独的.txt文件,其文本文件的名称是我的书.但是,在我的unix服务器中,当我查看文件的名称时,实际上并不是,例如,'LordOfTheFlies.txt'而是'LordOfTheFlies^M.txt'
这是什么'^ M'?这是一个奇怪的行编码结束我没有考虑到?我尝试了chomp但它似乎没有工作.使用perl的最佳文件编码是什么?
它是Windows系统在换行符之前插入的附加回车符(M ==第13个字母,因此ASCII 13可视化为^ M).
它与文件编码无关,它只是咬你的行结束策略.Perl通常擅长正确处理行结尾字符,但如果它们出现在除行尾之外的其他地方,则必须自己完成.您可以使用s /\_ //而不是chomp()来取出它们.
| 归档时间: |
|
| 查看次数: |
218 次 |
| 最近记录: |