Я получаю "несовместимые кодировки символов: CP850 и UTF-8" при отображении символа £ в моем приложении ramaze
Я получаю "несовместимые кодировки символов: CP850 и UTF-8" при отображении £
символ в моем приложении ramaze. Как я могу избавиться от этой ошибки? У меня в голове есть метатег UTF-8.
Это происходит, когда я печатаю £
символ с клавиатурой. Посмотрите.
Я поместил следующий код в мой файл ruby, и это не устранило проблему.
# encoding: UTF-8
Encoding.default_external = 'utf-8'
Encoding.default_internal = Encoding::UTF_8
3 ответа
Попробуйте форсировать кодировку, чтобы увидеть, устраняет ли это проблему:
your_string.force_encoding(::Encoding::UTF_8)
Если это так, погрузитесь в свое приложение и найдите, что задает неправильную кодировку, где и почему.
Возможно, это связано с сервером / веб-страницей, поскольку на странице, которую вы обслуживаете, отображается заголовок US-ASCII. Или сервер запускается с кодировкой, отличной от UTF-8. Или что-то другое на этот счет. Ваш сценарий заканчивается частью внешних данных, которые не являются UTF-8.
Проблема с Windows? Попробуйте использовать Iconv:
Iconv.conv('utf-8', "WINDOWS-1253", X)
Вы должны преобразовать текст из UTF-8 в другую кодировку, а затем обратно в UTF-8.
content = content.force_encoding("ISO-8859-1").encode("utf-8", replace: nil)
Обновление: этот ответ не сработал для меня, но может помочь вам.