Метод Ruby on Rails 3 => truncate со специальными символами выдает ошибку несовместимости кодирования - PullRequest
0 голосов
/ 04 апреля 2011

Мне нужна помощь со следующим. Я получил строку, которая содержит специальные символы, например, ë, é и т. д. Я могу правильно отобразить их в своем представлении, но как только я вызываю метод truncate , выдается следующая ошибка:

несовместимые кодировки символов: ASCII-8BIT и UTF-8

Странно то, что, когда я проверяю кодировку усеченной строки, она дает мне UTF-8, что мне и нужно (и UTF-8 используется для моей базы данных).

my_string_with_special_characters.truncate (35) .encoding.inspect
=> UTF-8

Но это когда я звоню: <% = my_string_with_special_characters.truncate (35)%>
=> несовместимые кодировки символов: ASCII-8BIT и UTF-8

Я также попробовал камень magic_encoding, который предшествует магическому комментарию "encoding: utf-8" во всех моих файлах контроллера, но я все еще получил несовместимую ошибку кодировки символов.

Если кто-нибудь знает, как решить эту проблему, дайте мне знать. Очень ценится.

Alex

1 Ответ

0 голосов
/ 04 апреля 2011

Попробуйте использовать эту строку в начале вашего файла (для * .rb файлов)

# -*- encoding: utf-8 -*-
...