У меня есть файл HL7, и имя в нем называется «müller», и поэтому я думаю, что получаю ошибку:
Выход
/usr/local/bundle/gems/simple_hl7-1.0.2/lib/simple_hl7/message.rb:115:in `split ': недопустимая последовательность байтов в UTF-8 (ArgumentError) из /usr/local/bundle/gems/simple_hl7-1.0.2/lib/simple_hl7/message.rb:115: в `parse ' из /app/config/initializers/filewatcher.rb:9:in `block in ' из /app/config/initializers/filewatcher.rb:2:in `foreach ' из /app/config/initializers/filewatcher.rb:2:in `' из /usr/local/bundle/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load ' из /usr/local/bundle/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load ' ...
это мой код
Dir.foreach('lib/hl7/') do |changes|
if File.basename(changes, ".HL7").include?("ADT")
p changes
hl7_file = File.open("lib/hl7/#{changes.to_s}")
hl7_read = File.read(hl7_file)
hl7_msg = SimpleHL7::Message.parse(hl7_read)
p hl7_msg
end
end
я пытался hl7_read = File.read (hl7_file) .encode ('utf-8') но это не сработало
Спасибо за помощь





Я думаю, вам нужно установить кодировку для файла в UTF-8 или в любую другую исходную кодировку.
Вы читали эту статью? https://gotitbot.com/blog/fight-back-utf-8-invalid-byte-sequences
Кстати, вы можете открыть файл с определенной кодировкой таким образом
File.open("lib/hl7/#{changes.to_s}", :encoding => 'UTF-8')
Я думаю, вам нужно выяснить, какова исходная кодировка этого файла. Возможно, вы должны быть уверены, что на вашем компьютере и сервере все по умолчанию в UTF-8, и если что-то не в UTF-8, вам нужно сначала его преобразовать.