2015-12-07 4 views
1

У меня есть следующая строка:Преобразование не-ASCII пунктуации ASCii

Ваше резюме в не-энциклопедический

Обратите внимание на ", é и æ являются не- ASCII. Я хочу оставить é и æ неповрежденным, но заменить «с ascii цитатой: '.

Как я могу сделать такое преобразование в Ruby (not Rails)? Моя база данных - UTF8, и я все еще хочу хранить акцентированные символы, включая кандзи, китайский и т. Д., Но просто хочу заменить пунктуацию.

+1

Возможно, я что-то упустил, но что случилось с 's.gsub/['" "'] /, {'"' => '"', '' '=>' \ '', '' '=>' \ '', '"' => '"'} '? – mudasobwa

+0

Поскольку пунктуация может быть больше, чем просто цитата, это может быть нечто большее, чего я не знаю. – Victor

+2

И «что-то не знаешь» должен быть изменен на _what_? BTW, '/ \ p {Punct} /' будет захватывать все знаки препинания. – mudasobwa

ответ

0

Найден этот драгоценный камень, который работает именно то, что я хотел - https://github.com/qwuen/punctuate

Вобще .punctuate!:

irb(main):001:0> require 'punctuate' 
=> true 
irb(main):002:0> "Your résumé’s a non–encyclopædia".punctuate! 
=> "Your résumé's a non-encyclopædia" 
1

"’".bytes возвращает байты характера, который [226, 128, 153] петли через каждый символ с помощью each_char и сравнить каждый персонаж байты с [226, 128, 153], затем замените этот символ на нормальный 'байт, который является [39] [39].pack("c*")

Смежные вопросы