Ruby 1.8 ve UTF-8 dize kılıfın deyimi karşılaştırma

oy
1

Benim paylaşılan web barındırma cron ile çalışacak bir Rake görevi (lib / görevlerde dizin) var. Sorun Dava statment kullanarak UTF-8 dizesi karşılaştırmak istiyorum ama benim kaynak kodu UTF-8 kodlanmış olmadığıdır. Bunu başlatmaya çalıştığınızda UTF-8 hata var gibi ben kaynak kodunu kaydederseniz :(

Ne yapmalıyım?

Dış UTF-8 Metin dosyasından bu dizeleri okunabilir?

PS Ruby 1.8 kullanıyorum

PS Bu şekilde karşılaştırmak demek:

result = case utf8string
   when 'АБВ': 1
   when 'ГДИ': 2
   when 'ЙКЛ': 3
   when 'МНО': 4
   else 5
end
Oluştur 09/12/2008 saat 17:16
kaynak kullanıcı
Diğer dillerde...                            


3 cevaplar

oy
0

Kullanmayı deneyin mb_charsRails'in gelen yöntemini ActiveSupport çerçevesi:

result = case utf8string.mb_chars
   when 'АБВ': 1
   when 'ГДИ': 2
   when 'ЙКЛ': 3
   when 'МНО': 4
   else 5
end
Cevap 09/12/2008 saat 22:18
kaynak kullanıcı

oy
2

Benim sorun durumda statment olmadığı bulundu

Sorun UTF-8 UTF-8 biçiminde benim kaynak kodunu kurtarmak, benim metin editörü bu kodlamayı göstermek için başlangıçta 3 bayt (BOM) ekleyin olmasıydı.

S: Bir BOM nedir?

C: Bir bayt sırası işareti (BOM) öncelikle işaretlenmemiş düz metin dosyaları, bayt düzen ve kodlama şeklini tanımlayan bir imza olarak kullanılabilir bir veri akışı, başında karakter kodu U +, FEFF oluşur. Bazı daha yüksek protokol altında, BOM kullanımı bu protokolde tarif Unicode veri akımı içinde zorunlu (ya da yasak) olabilir.

UTF-8, UTF-16, UTF-32 ve BOM

Ben olsun hata:

1: Invalid char `\357' in expression
1: Invalid char `\273' in expression
1: Invalid char `\277' in expression
Cevap 10/12/2008 saat 09:34
kaynak kullanıcı

oy
1

Ben BOM edilirken, her zaman metin editörü değiştirmenize gerek derdim değil UTF-8 için gerekli. UTF-8 bağımlı bayt sırası değil. Bkz bağlantı metnini detayları için.

Cevap 11/12/2008 saat 10:57
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more