Преобразование ANSI в UTF8 с помощью Ruby

У меня есть скрипт Ruby, который генерирует файл ANSI.

Я хочу преобразовать файл в UTF8.

Как проще всего это сделать?


person HelloWorld    schedule 28.04.2010    source источник


Ответы (3)


Если ваши данные находятся между диапазоном ascii от 0 до 0x7F, это допустимая UTF8, поэтому вам не нужно ничего делать.

Или, если есть символы выше 0x7F, вы можете использовать Iconv

text=Iconv.iconv('UTF-8', 'ascii',text)
person YOU    schedule 28.04.2010
comment
Я решаю свою проблему. Мой код: text=Iconv.iconv('UTF-8', 'gb2312',text) - person HelloWorld; 28.04.2010
comment
О, ладно, я не знал, что у вас кодировка «gb2312», поэтому в качестве примера я поставил «ascii». Вы должны были задать вопрос gb2312 для UTF8. но в любом случае, рад узнать, что он работает. - person YOU; 28.04.2010
comment
Iconv устарел в 1.9.3 9 3">stackoverflow.com/questions/8148762/ Вместо этого попробуйте String#encode. - person Casey Robinson; 07.02.2013

8-битный формат преобразования Unicode (UTF-8) был разработан с учетом обратной совместимости. с Американским стандартным кодом обмена информацией (ASCII). Следовательно, по определению любая действительная последовательность ASCII также является допустимой последовательностью UTF-8. Для получения дополнительной информации прочитайте Часто задаваемые вопросы по UTF и Часто задаваемые вопросы по Unicode.

person Michael Aaron Safyan    schedule 28.04.2010

Любой файл ASCII является допустимым файлом UTF8, идущим по заголовку вашего Q, поэтому преобразование не требуется. Я не знаю, что такое файл UIF8, судя по тексту вашего вопроса, который так отличается от его названия.

person Alex Martelli    schedule 28.04.2010