2009-05-23 31 views
8

Karakter dizilimimi bir RoR uygulamasında html görünümünde kurmaya çalışıyorum. Ben meta equiv etiketi ile zaten charset yapılandırılmış:
** meta http-equiv = "Content-Type" content = "text/html; charset = iso-8859-1" **raylar uygulamasında küme seti

Olmadı iş, bu yüzden .htaccess (onun apache altında çalışan bir RoR uygulaması) değiştirmeye çalıştım ama işte benim sorunum. Normalde şu ifadeyi kullanabilirim: AddType 'text/html; charset = ISO-8859-1 'html

Ancak sorun şu ki, herkesin bildiği gibi, RoR'da "dosya uzantısı" yoktur ve bu .htaccess çözümünü bozar. Bir düzen şablonunda veya görüntüde bir kriket ayarlamanın başka bir yolu bilen var mı?

cevap

13

Rails uygulamanızın Content-type üstbilgisini ayarladıktan sonra Apache'nin ne yaptığını düşünmenize gerek kalmaz.

response.headers['Content-type'] = 'text/html; charset=utf-8' 

Ayrıca, biri diske kaydeder, eğer doğru karakter kümesi ile doldursun diye, sayfanın kendisine

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

eklemek isteyebilir.

+0

ben tüm kontrolörler availabe yapmak için uygulama denetleyicisi de ayarlayabilirsiniz? Görünüm/layout/application.rhtml –

+0

karakterleri ile sorun yaşıyorum Çünkü, buna ihtiyacım vardı. @ VP, bir before_filter içine koyabilirsiniz ve ben bunlardan birini application_controller.rb koyabilirsiniz düşünüyorum –

2

Böyle bir işlev ekledim, ancak hala çalışmıyor, çalışmayan benim application.rhtml içinde kodlarım var.

before_filter :configure_charsets 

# Configuring charset to UTF-8 
def configure_charsets 
    headers["Content-Type"] = "text/html; charset=UTF-8"  
end 

Ben de meta http-equiv html etiketi ve bir .htaccess parametre AddDefaultCharset eklenen UTF-8 hâlâ çalışmıyorsa

başka bir ipucu?

0

Sadece ayarlayın: encoding => 'utf-8' Böyle şablon adından sonra:

respond_to do |f| 
    f.pdf do 
    render :pdf => 'path_to_template_file', :encoding => 'utf-8' 
    end 
end