Простое преобразование строки в UTF-8 в Ruby 1.8 - PullRequest
9 голосов
/ 08 сентября 2010

Я знаю, что в Ruby 1.9 вы можете легко перекодировать строку, подобную этой.

s = s.encode('UTF-8')

Что эквивалентно в Ruby 1.8?Для чего нужны строки, для этого нужно.

Все учебники, которые я видел, излишне сложны, и я не понимаю, что происходит.

1 Ответ

10 голосов
/ 08 сентября 2010

Джеймс Эдвард Грей II имеет подробные коллекции сообщений , посвященные проблемам кодирования и набора символов в Ruby 1.8. Пост под названием Преобразование кодировки с иконкой содержит подробную информацию.

Резюме: гем iconv выполняет всю работу по конвертации кодировок. Убедитесь, что он установлен с:

gem install iconv

Теперь вам нужно знать, какая кодировка вашей строки в настоящее время , поскольку Ruby 1.8 обрабатывает строки как массив байтов (без внутренней кодировки.) Например, скажем, ваша строка была в латинице 1, а вы хотел преобразовать его в utf-8

require 'iconv'

string_in_utf8_encoding = Iconv.conv("UTF8", "LATIN1", string_in_latin1_encoding)

Порядок аргументов:

  1. Целевое кодирование
  2. Исходная кодировка
  3. Строка для преобразования
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...