шестнадцатеричное представление немецкого умлаута в строку - PullRequest
1 голос
/ 31 марта 2011

У меня есть строка, в которой не символы ascii, закодированные как "\\ 'fc" (без кавычек), где fc - это шестнадцатеричное число 252, которое соответствует немецкому umlaut.

Мне удалось найти все случаии может заменить их.Но я не смог преобразовать фк в ü.

"fc".hex.chr

дает мне другое представление ... но если я сделаю

puts "fc".hex.chr

, я ничего не получу обратно ...

Заранее спасибо

PS: я работаю над ruby ​​1.9 и у меня

# coding: utf-8

вверху файла.

Ответы [ 2 ]

2 голосов
/ 31 марта 2011

fc не является правильной кодовой точкой UTF-8 для этого символа;это iso-8859-1 или windows-1252.Кодировка UTF-8 для ü представляет собой двухбайтовую последовательность c3bc.Кроме того, FC не является допустимой последовательностью UTF-8.

Так как UTF-8 предполагается в Ruby 1.9, вы должны иметь возможность получить литерал u-umlaut с помощью: "\xc3\xbc"

1 голос
/ 31 марта 2011

Вы пробовали

puts "fc".hex.chr(Encoding::UTF_8)

Документы Ruby:

ОБНОВЛЕНИЕ:

Джейсон Ист прав.fc является недействительным UTF-8.Я понятия не имею, почему мой пример работает!

...