Я на рельсах 3.2.1, использую postgres с pg 0.13.2 и haml 3.1.4.
Кодировка БД "unicode", которая, я уверен, такая же, как и "UTF-8" для postgres
Метатег имеет charset = utf-8 (как на странице формы, так и на странице отображения), а форма имеет accept-charset = "UTF-8"
Я получаю сообщение об ошибке «несовместимые кодировки символов: ASCII-8BIT и UTF-8» в моей производственной среде (кедр Heroku), и я уже пробовал кучу исправлений, но не совсем понимаю, что происходит , Среда разработки не вызывает проблемы.
Строка, вызывающая проблему, имеет копию апострофа / вставлена из Word. Если я удаляю персонажа, все отрисовывается нормально, но это пользовательский контент, так что в будущем он обязательно сломается.
Из консоли Heroku вызов string.encoding.name возвращает «UTF-8», а использование force_encoding («UTF-8») в представлении не имеет значения.
Но, если я использую фильтр хамла (например, markdown) для строки, все будет хорошо.
Кроме того, изменение представления на erb решает проблему.
Есть идеи? Нельзя использовать фильтры повсюду, и я хочу докопаться до сути.