в Ruby, пытаясь преобразовать эти странные цитаты в «обычные» цитаты - PullRequest
2 голосов
/ 26 июня 2009

Я пытаюсь разобрать текстовый файл с такими странными кавычками, как «И» в «нормальные кавычки»

Я пробовал это:

text.gsub!("“",'"')
text.gsub!("”",'"')

но когда это сделано, они все еще там и отображаются как

\x93 and \x94

поэтому я попытался добавить это тоже безуспешно:

text.gsub!('\\x93', '"')
text.gsub!('\\x94', '"')

Проблема в том, что, когда я пытаюсь показать эти странные цитаты на веб-странице, получается странный ромб с символом знака вопроса:

Ответы [ 3 ]

1 голос
/ 26 июня 2009

Вроде работает:

text = "“foo”"
=> "\342\200\234foo\342\200\235"
irb(main):002:0> text.gsub!("“",'"')
=> "\"foo\342\200\235"
irb(main):003:0> text.gsub!("”",'"')
=> "\"foo\""

Вам нужно использовать шестнадцатеричный редактор, чтобы выяснить все задействованные коды символов.

0 голосов
/ 26 июня 2009

Ваши первые gsubs должны работать. Причина, по которой второй набор gsub не работает, заключается в том, что вы используете одинарные кавычки и двойной обратный слеш. Попробуйте наоборот:

text.gsub!("\x93", '"')
text.gsub!("\x94", '"')

Вы также можете сделать это в одной строке:

text.gsub!("\x93", '"').gsub!("\x94", '"')
# or
text.gsub!(/(\x93|\x94)/, '"')

Вы уверены, что кодировка строки правильная?

0 голосов
/ 26 июня 2009

Re: второй вопрос, почему странные цитаты отображаются на веб-странице в виде символа as:

Ваша проблема в том, что ваша веб-страница не в режиме UTF-8. Чтобы получить это там, смотрите http://www.w3.org/International/O-HTTP-charset

Если вы не можете изменить свой веб-сервер, добавьте мета-строку в разделе заголовка своих веб-страниц: http://www.utf -8.com /

Larry

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...