在ruby中读取文件,以字符形式输出为空格

在ruby中读取文件,以字符形式输出为空格,ruby,file,Ruby,File,我已通过powershell脚本将变量输出存储到文件中。 例如:764451AFCFBA6A0CC4706F3AA795BB86存储在file.txt中 之后,我从文件中读取数据,并使用ruby脚本将其存储在变量中。 当我打印变量时,它正在打印字符之间带有空格的数据。 例:■7 6 4 4 5 1 A F C F B A 6 A 0 C 4 7 0 6 F 3 A 7 9 5 B 8 6 E D 5 3 3 0 我希望将数据存储在变量中,字符之间不留空格。 我试了很多,但没有找到解决办法 fil

我已通过powershell脚本将变量输出存储到文件中。 例如:
764451AFCFBA6A0CC4706F3AA795BB86
存储在file.txt中

之后,我从文件中读取数据,并使用ruby脚本将其存储在变量中。 当我打印变量时,它正在打印字符之间带有空格的数据。 例:
■7 6 4 4 5 1 A F C F B A 6 A 0 C 4 7 0 6 F 3 A 7 9 5 B 8 6 E D 5 3 3 0

我希望将数据存储在变量中,字符之间不留空格。 我试了很多,但没有找到解决办法

file.txt文件中的内容:

7644511AAFCFBA6A0CC4706F3AA795BB86ED5330
Ex1:

File.open("c:\\file.txt") { |f| puts f.read }
txt = open("c:\\file.txt")
print txt.read
Ex2:

File.open("c:\\file.txt") { |f| puts f.read }
txt = open("c:\\file.txt")
print txt.read
Ex3:

File.readlines("c:\\file.txt").each do |line| 
  var = line 
  puts var 
end
请给我你有价值的建议


我在windows平台上执行此操作

这可能是由于
file.txt而不是您的代码出现问题。正如@stefan所说,这可能是由于文件的UTF-16编码,而ruby使用您环境的默认编码。例如,如果您的环境(获取此结果的位置-即..powershell)设置为UTF-8,ruby将以UTF-8文件的形式读取该文件


您可以使用以下命令手动设置编码:
File.read(“File.txt”,encoding:)
。其中
是文件的类型。我建议看一下这个可能有助于更好地理解这个问题。我还建议您查看
file.txt的编码,以了解其编码是什么。

您是否介意分享用于读取文件的代码?以及您的ruby脚本正在读取的测试文件。看起来像是UTF-16编码问题。这些空格可以是空字节,前导的
可以是BOM。@sravanth尝试创建一个复制您的问题的最小示例。@sravanth不要将其作为注释发布,请编辑您的问题。谢谢Lee Jon。从powershell创建文件时,该文件采用Unicode编码。但是ruby有Ascii码,所以我在创建文件Though powershell | Out file-en Ascii c:\\file.txt时将编码改为Ascii码。它工作得很好