0

Я пытаюсь использовать кодировку символов gem, которая не строится в 1.9.2, но она выполняется в 1.8.7, но даже когда мне требуется «кодирование/character/utf-8 'Я все еще не могу сделать простейшую кодировку.Кодирование в Ruby 1.8.7 или 1.9.2

require 'encoding/character/utf-8' 
str = u"hëllö" 
str.length 
    #=> 5 
str.reverse.length 
    #=> 5 
str[/ël/] 
    #=> "ël" 

я

ruby-1.8.7-p302 > # encoding: utf-8 
ruby-1.8.7-p302 > require 'encoding/character/utf-8' 
=> nil 
ruby-1.8.7-p302 > str = u"hll" 
=> u"hll" 
ruby-1.8.7-p302 > str.length 
=> 3 
ruby-1.8.7-p302 > #=> 5 
ruby-1.8.7-p302 > str.reverse.length 
=> 3 
ruby-1.8.7-p302 > #=> 5 
ruby-1.8.7-p302 > str[/l/] 
=> "l" 

Мой вопрос, есть ли действительно хорошая библиотека кодирования, которая может принять или, возможно, выделяют все различные символы там. Или, может быть, использовать utf-16? Я пробовал использовать волшебный код «# encoding: utf-8», который, похоже, тоже не сделал этого. Спасибо

ответ

3

Боюсь, я не понимаю ваш вопрос. У вас проблемы с файлом исходного кода? Я пробовал это как в консоли, так и в ruby-скрипте (1.8.7), и он работает.

require 'rubygems' 
require 'encoding/character/utf-8' 
str = u'hëllö' 
puts str.length 
puts str.reverse.length 
puts str[/ël/] 

и выход работает как ожидалось

5 
5 
ël 

В Ruby 1.9+ (я тестировал в 1.9.2 предварительного просмотра) не нужна библиотека, а кодировка поддерживается в стандартной библиотеке. See this post for more information об этом. http://yehudakatz.com/2010/05/05/ruby-1-9-encodings-a-primer-and-the-solution-for-rails/

+0

Спасибо :) Я чувствую себя немного гм Да – Davinj

1

это работает без расширений и гр на 1.8/1.9, не все методы струнных работ (но они легко добавить)

https://github.com/grosser/string19

require 'rubygems' 
require 'string19' 
String19('hëllö').length == 5 
Смежные вопросы