如何在ruby中读取带有特殊字符的文件?

时间:2011-12-02 20:11:11

标签: ruby file

我目前有一个内部有特殊字符^ M的文件。

Bugs,^MMember Name,Entity Number^MPilgrim,1 404 765 909^MLovene,1 406 373 405^MLarry,1 404 867 143^MTom,^MChristine,1 404 803 973^MJacqueline,1 406 053 064

当我尝试读取此文件时,仅输出最后一行:Jacqueline,1 406 053 064.我有以下内容并且不起作用?

file.each {|line| puts line }

1 个答案:

答案 0 :(得分:3)

您正在谈论的^Mcarriage return字符,其值为0x0d。你可以使用

摆脱它
File.read("filename").gsub "\r", ''

或用它分割文件的内容

File.read("filename").split "\r"

正如LBg所指出的,某些平台,例如Windows,要求您以二进制模式打开文件以读取CR字符。

File.read("filename", "rb").split "\r"