Простое преобразование строки в 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)
Порядок аргументов:
- Целевое кодирование
- Исходная кодировка
- Строка для преобразования