SORU
15 Aralık 2009, Salı


Ruby 1.9: nasıl düzgün ve boş dizeleri harf downcase miyim?

Matz upcase downcase ruby 1.9.1 /[A-Z]/i sınırlı tutmaya karar verdi.

ActiveSupport::Multibyte uzun büyük i18n dava ruby 1,8 jiggering olmuştur.String#mb_chars) x.

Ruby altında çalışırken ancak, 1.9.1, işe yaramıyor. İşte, alıyorum çıkışı ile birlikte yazdığım basit bir sınama betiği:

$ cat test.rb
# encoding: UTF-8

puts("@ #{RUBY_VERSION} "   (__ENCODING__ rescue $KCODE).to_s)
sd, su = "Iñtërnâtiônàlizætiøn", "IÑTËRNÂTIÔNÀLIZÆTIØN"
def ps(u, d, k); puts "%-30s:  $s / %-24s" % [k, u, d] end
ps sd.upcase, su.downcase, "Plain ruby"

require 'rubygems'; require 'active_support'
ps sd.upcase, su.downcase, "With active_support"
ps sd.mb_chars.upcase.to_s, su.mb_chars.downcase.to_s, "With active_support mb_chars"

$ ruby -KU test.rb
@ 1.8.7 UTF8
Plain ruby                    :  IñTëRNâTIôNàLIZæTIøN / iÑtËrnÂtiÔnÀlizÆtiØn
With active_support           :  IñTëRNâTIôNàLIZæTIøN / iÑtËrnÂtiÔnÀlizÆtiØn
With active_support mb_chars  :  IÑTËRNÂTIÔNÀLIZÆTIØN / iñtërnâtiônàlizætiøn

$ ruby1.9 test.rb
@ 1.9.1 UTF-8
Plain ruby                    :      IñTëRNâTIôNàLIZæTIøN / iÑtËrnÂtiÔnÀlizÆtiØn
With active_support           :      IñTëRNâTIôNàLIZæTIøN / iÑtËrnÂtiÔnÀlizÆtiØn
With active_support mb_chars  :      IñTëRNâTIôNàLIZæTIøN / iÑtËrnÂtiÔnÀlizÆtiØn

Nasıl upcase ve ruby 1.9.1 ile downcase uluslararası alabilirim?

güncelleme

Ben de geçerli ActiveSupport master, 2-3-* GitHub 3-0-unstable raylar dalları ile test eklemek gerekir. Aynı sonuçlar.

CEVAP
8 Kasım 2013, Cuma


herkes için ruby upcase utf8 google gelen:

> "your problem chars here çöğıü Iñtërnâtiônàlizætiøn".mb_chars.upcase.to_s
=> "YOUR PROBLEM CHARS HERE ÇÖĞIÜ IÑTËRNÂTIÔNÀLIZÆTIØN"

çözüm mb_chars kullanmaktır

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Angry Paintballer

    Angry Paintb

    8 Ocak 2012
  • Chip Johnson

    Chip Johnson

    30 AĞUSTOS 2007
  • Excel Video Tutorials

    Excel Video

    6 Aralık 2012