2012-02-23 3 views
1

В моем контроллере у меня есть:Рельсы, как визуализировать JSON как UTF-8?

def index 
    @title = 'asdsadas' 
    @kategoris = Tag.where("name like ?", "%#{params[:q]}%") 
    respond_to do |format| 
    format.html 
    format.json { render :json => @kategoris.map(&:attributes) } 
    end 
end 

Я создал обезьяну патч в качестве ответа на этот вопрос: JSON encoding wrongly escaped (Rails 3, Ruby 1.9.2)

Но JSON до сих пор не правильный пример кодирования:

Delta i t��vlingar f��r biljetter 
+0

эй товарищ Швеция. кодировки могут быть неправильными во многих местах. с ruby ​​1.9 utf-8 - это кодировка по умолчанию, поэтому вполне вероятно, что вы либо сохранили свои данные как что-то еще, либо сказали браузеру показать что-то еще. вам, вероятно, нужно предоставить немного больше деталей, чтобы получить ответ на этот вопрос. информация обо всех ваших слоях и их настройка могут помочь. – froderik

+0

У меня есть «mysql» драгоценный камень, а не драгоценный камень «mysql2», поэтому мне часто приходится использовать force_encoding («UTF-8»). Я не могу установить gem mysql2, потому что проблема с XAMPP. –

+0

Как я могу называть force_encoding («UTF-8») атрибутами хэша? –

ответ

2

Я уверен, что вы можете исправить это с помощью своей базы данных, но быстрое исправление может быть:

new_kategoris = @kategoris.map {|v| v.force_encoding('UTF-8') } 
format.json { render :json => new_kategoris.map(&:attributes) } 
+0

Я получаю: NoMethodError в Admin :: TagsController # index undefined method 'each_pair 'для # <Массив: 0x4af6328> вам также не хватает атрибутов. –

+0

aha - проще - я думал, что у вас есть хэш назад из базы данных (в последнее время слишком много сиквела) ответ обновляется – froderik