我想出了一种方法来确定我传入的文件的编码(或至少是猜测):
def encoding_type(file_path)
File.read(file_path).encoding.name
end
问题是我有一个 15GB 的文件,这意味着整个文件都被读入了内存。
有没有办法在不需要将整个文件读入内存的情况下完成我在这个方法中所做的事情?
最佳答案
file -mime
命令将返回文件的 mime 类型和编码:
file -mime myfile
我的文件:文本/纯文本; charset=iso-8859-1
def detect_charset(file_path)
`file --mime #{file_path}`.strip.split('charset=').last
rescue => e
Rails.logger.warn "Unable to determine charset of #{file_path}"
Rails.logger.warn "Error: #{e.message}"
end
关于ruby - 在 Ruby 中确定文件的编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24897465/