Простое преобразование строки в UTF-8 в Ruby 1.8

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

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

Что эквивалентно в Ruby 1.8? То, что требует линий, это нужно.

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

1 ответ

Решение

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

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

gem install iconv

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

require 'iconv'

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

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

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