String#gsub Ruby, unicode, и несловесные символы

Агент пользователя от браузера не что-то, на что я полагался бы для чего-либо, Все мы используем его для статистики, но мы знаем, что они не на 100% точны.

я использую Firefox и регулярно имитирую IE для некоторых сайтов, которым не нравится он, мой регулярный UA:

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) 
Gecko/2008101315 Ubuntu/8.10 (intrepid) Firefox/3.0.3 

я иногда использую расширение Firefox для изменения его на:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MS-RTC LM 8; 
.NET CLR 2.0.50727; .NET CLR 1.1.4322)

при рассмотрении его необходимо было бы проанализировать различные части, ОС является третьей частью разграниченных точкой с запятой значений между скобками.

12
задан Peter Boughton 27 October 2009 в 09:19
поделиться

2 ответа

Вам нужно запустить ruby ​​с параметром «-Ku», чтобы он использовал UTF-8. См. Документацию по параметрам командной строки . Вот что происходит, когда я делаю это с irb:

% irb -Ku
irb(main):001:0> my_str = "Quística."
=> "Quística."
irb(main):002:0> processed = my_str.gsub(/\W/,'')
=> "Quística"
irb(main):003:0> 

Вы также можете поместить это в #! строка в вашем скрипте ruby:

#!/usr/bin/ruby -Ku
12
ответ дан 2 December 2019 в 20:18
поделиться

Я просто хочу добавить, что в 1.9.1 он работает по умолчанию.

$ irb
ruby-1.9.1-p243 > my_str = "Quística."
=> "Quística."
ruby-1.9.1-p243 > processed = my_str.gsub(/\W/,'')
=> "Quística"
ruby-1.9.1-p243 > processed.encoding
=> #<Encoding:UTF-8>

PS. Ничто не сравнится с rvm для тестирования различных версий Ruby. DS.

4
ответ дан 2 December 2019 в 20:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: