我目前有一个内部有特殊字符^ 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 }
答案 0 :(得分:3)
您正在谈论的^M
是carriage return字符,其值为0x0d。你可以使用
File.read("filename").gsub "\r", ''
或用它分割文件的内容
File.read("filename").split "\r"
正如LBg所指出的,某些平台,例如Windows,要求您以二进制模式打开文件以读取CR字符。
File.read("filename", "rb").split "\r"