A codificação de string de conversão Ruby de ISO-8859-1 para UTF-8 não está funcionando

Estou tentando converter uma seqüência de caracteres da codificação ISO-8859-1 para UTF-8, mas não consigo fazê-lo funcionar. Aqui está um exemplo do que eu fiz no irb.

irb(main):050:0> string = 'Norrlandsvägen'
=> "Norrlandsvägen"
irb(main):051:0> string.force_encoding('iso-8859-1')
=> "Norrlandsv\xC3\xA4gen"
irb(main):052:0> string = string.encode('utf-8')
=> "Norrlandsvägen" 

Não sei por quêNorrlandsvägen na iso-8859-1 será convertido emNorrlandsvägen em utf-8.

Eu tentei codificar, codificar !, codificar (destinationEncoding, originalEncoding), iconv, force_encoding e todos os tipos de soluções estranhas em que eu conseguia pensar, mas nada parece funcionar. Alguém pode me ajudar / me apontar na direção certa?

O novato Ruby ainda puxa o cabelo como um louco, mas se sente grato por todas as respostas aqui ... :)

Antecedentes desta pergunta: Estou escrevendo uma jóia que fará o download de um arquivo xml de alguns sites (que terão a codificação iso-8859-1) e salve-a em um armazenamento e gostaria de convertê-la para utf-8 primeiro. Mas palavras comoNorrlandsvägen continue me bagunçando. Realmente qualquer ajuda seria muito apreciada!

[UPDATE]: Eu percebi que executar testes como esse no console irb pode me dar comportamentos diferentes, então aqui está o que eu tenho no meu código real:

def convert_encoding(string, originalEncoding) 
  puts "#{string.encoding}" # ASCII-8BIT
  string.encode(originalEncoding)
  puts "#{string.encoding}" # still ASCII-8BIT
  string.encode!('utf-8')
end

mas a última linha me dá o seguinte erro:

Encoding::UndefinedConversionError - "\xC3" from ASCII-8BIT to UTF-8

Graças à resposta de @ Amadan abaixo, notei que\xC3 na verdade aparece no irb se você executar:

irb(main):001:0> string = 'ä'
=> "ä"
irb(main):002:0> string.force_encoding('iso-8859-1')
=> "\xC3\xA4"

Eu também tentei atribuir uma nova variável ao resultado destring.encode(originalEncoding) mas obteve um erro ainda mais estranho:

newString = string.encode(originalEncoding)
puts "#{newString.encoding}" # can't even get to this line...
newString.encode!('utf-8')

e o erro éEncoding::UndefinedConversionError - "\xC3" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to ISO-8859-1

Ainda estou bastante perdido em toda essa bagunça de codificação, mas sou muito grato por todas as respostas e pela ajuda que todos me deram! Muito obrigado! :)

questionAnswers(3)

yourAnswerToTheQuestion