2015-08-09 17 views
7

üzerine £ sembolü gösterirken ben "CP850 ve UTF-8 uyumsuz karakter kodlamalarını" alırlar. Bu hatayı nasıl kurtarabilirim? Kafa etiketimde UTF-8 meta etiketim var.: my ramaze uygulamasında <code>£</code> sembolü görüntülenirken benim ramaze app

Klavyeyle £ sembolünü yazdığımda olur. Bak.

encoding error

benim yakut dosyasında aşağıdaki kodu koyduk ve sorun sabit değil. uygulamanıza,

your_string.force_encoding(::Encoding::UTF_8) 

Eğer varsa dalış ve yanlış kodlama ayarlama, nerede ve neden ne nokta:

# encoding: UTF-8 
Encoding.default_external = 'utf-8' 
Encoding.default_internal = Encoding::UTF_8 
+0

Neden kimse bu soruyu kapatmak için oy verdin? – desbest

+0

Yani bu zaten var: ruby ​​dosyanızın üstünde '# kodlama: UTF-8'? –

+0

Herhangi bir sistemde kodlama sorununu taklit etmek için (ya da düzeltmeyi sınamak için), kodlamayı Ruby çalıştırırken UTF-8'den başka bir şeye ayarlamanız yeterlidir: 'ruby -E US-ASCII my_script.rb' Bunu deneyin ve bırakın bana biliyorum –

cevap

4

deneyin o sorun ortadan kalkar yaparsa görmek için kodlamayı zorlamak için .

Sunum yaptığınız sayfada olduğu gibi, bir başlık nedeniyle US-ASCII olduğu için sunucu/web sayfası ile ilgili olabilir. Veya sunucu UTF-8 dışındaki kodlamayla başlatılır. Ya da bu etki için başka bir şey. Scriptiniz, UTF-8 olmayan bir harici veri parçasıyla sonuçlanıyor.

+0

Kod satırınız çalışmıyor. Bu cevabı denedim ancak bilgisayarımda tanımlı "LC_ALL" değişkenine sahip olmadığım için çalışmadı. http://stackoverflow.com/questions/5908774/set-global-default-encoding-for-ruby-1-9/17616076#17616076 – desbest

1

Windows sorunu? Iconv kullanmayı deneyin:

Iconv.conv('utf-8', "WINDOWS-1253", X)

İlgili konular