首页 > 解决方案 > 红宝石。读取简单文件后的 NUL 字符

问题描述

我正在使用 Ruby 读取简单的文本文件以进行进一步的正则表达式处理,突然我NUL在每个可打印字符之后看到那个 str 。完全迷失了,它来自哪里,我测试了在记事本中输入简单的文本,保存为 txt 文件并且仍然得到那些。我在W机器上,以前没有这个。我如何处理它,可能会替换它们,不知道如何引用它们。我的正则表达式不适用于它们,尝试了几种方法,使用 SciTE 运行。例如 use表示为uNULsNULeNUL且不等于use

puts File.read(file_name)
puts '____________________'

File.open(file_name, "r") do |f|
  f.each_line do |line|
    puts 'Line.....' + line
  end
end

---------------------- 下面是文件内容和输出的图片: 在此处输入图像描述

标签: ruby

解决方案


该文件可能是 UTF-16 格式。您需要以这种方式阅读它:

File.open(file_name, "r:UTF-16LE") do |f|
  # ...
end

该格式是 Windows 中的默认格式。

您始终可以通过将文件重新保存为 UTF-8 来解决此问题。


推荐阅读