module Modsvaskr::Encoding

Provide helpers to encode Windows and Linux strings to UTF-8

Public Class Methods

to_utf_8(str) click to toggle source

Convert a string to UTF-8

Parameters
  • str (String): The string to convert

Result
  • String: The converted string

# File lib/modsvaskr/encoding.rb, line 12
def self.to_utf_8(str)
  orig_encoding = str.encoding
  encoding = nil
  begin
    encoding = %w[
      UTF-8
      Windows-1252
      ISO-8859-1
    ].find { |search_encoding| str.force_encoding(search_encoding).valid_encoding? }
  ensure
    str.force_encoding(orig_encoding)
  end
  raise "Unknown encoding for string #{str[0..127].inspect}" if encoding.nil?

  str.encode('UTF-8', encoding)
end