Rk Ch wrote:
> Want to covert "Rubyɴ" into
> "Ruby\343\202\275\343\203\274\343\202\271\343\202\263\343\203\274\343\203\211\345\256\214\345\205\250\350\247\243\350\252\254".
> To solve fxruby displaying asia string.
> Any method?
> Thanks a lot!

This is how I do it. I guess it
########################################################################
# konvert_1250_UTF
#########################################################################
def konvert_1250_UTF(st)
  r = ''
  st.each_byte do |b|
    r << case b
     when 0..137: b.chr
     when 138: ''
     when 142: 'Ž'
     when 154: 'š'
     when 158: 'ž'
     when 198: ''
     when 200: ''
     when 208: ''
     when 230: ''
     when 232: ''
     when 240: ''
     else b.chr
    end
  end
  r
end

#########################################################################
# konvert_UTF_1250
#########################################################################
def konvert_UTF_1250(st)
=begin
#  slowest way
  r = ''
  st.each_char do |c|
    r << case c
#     when ' '..'z': b.chr       # faster if not used
     when '': 138.chr
     when 'Ž': 142.chr
     when 'š': 154.chr
     when 'ž': 158.chr
     when '': 198.chr
     when '': 200.chr
     when '': 208.chr
     when '': 230.chr
     when '': 232.chr
     when '': 240.chr
     else c
    end
  end
  r

# Faster. At least for 10 chars
  st.gsub!('', 138.chr)
  st.gsub!('Ž', 142.chr)
  st.gsub!('š', 154.chr)
  st.gsub!('ž', 158.chr)
  st.gsub!('', 198.chr)
  st.gsub!('', 200.chr)
  st.gsub!('', 208.chr)
  st.gsub!('', 230.chr)
  st.gsub!('', 232.chr)
  st.gsub('', 240.chr)
=end

# This is about 3 times faster as previous
      st.gsub!(//, 138.chr)
      st.gsub!(/Ž/, 142.chr)
      st.gsub!(/š/, 154.chr)
      st.gsub!(/ž/, 158.chr)
      st.gsub!(//, 198.chr)
      st.gsub!(//, 200.chr)
      st.gsub!(//, 208.chr)
      st.gsub!(//, 230.chr)
      st.gsub!(//, 232.chr)
      st.gsub(//, 240.chr)

end



by
TheR
-- 
Posted via http://www.ruby-forum.com/.