没有BOM的 UTF-8和UTF-8有什么不同?哪个更好?
我正在使用最近添加了Unicode BOM头(U + FEFF)的数据源,而我的rake任务现在被它搞砸了.
我可以跳过前3个字节,file.gets[3..-1]但有没有更优雅的方式来读取Ruby中的文件,无论BOM是否存在,都能正确处理?
有没有办法从UTF-8编码的文件中删除BOM?
我知道我的所有JSON文件都是用UTF-8编码的,但编辑JSON文件的数据输入人员用BOM将其保存为UTF-8.
当我运行我的Ruby脚本来解析JSON时,它失败并出现错误.我不想手动打开58+ JSON文件并在没有BOM的情况下转换为UTF-8.
我有一些带拐杖的工作代码,可以将BOM标记添加到新文件中.
#writing
File.open name, 'w', 0644 do |file|
file.write "\uFEFF"
file.write @data
end
#reading
File.open name, 'r:bom|utf-8' do |file|
file.read
end
Run Code Online (Sandbox Code Playgroud)
有没有办法自动添加标记而不"\uFEFF"在数据之前写隐藏?喜欢的东西File.open name, 'w:bom' # this mode has no effect可能?