Вывод списка уникальных символов Юникода в Ruby - PullRequest
0 голосов
/ 02 февраля 2012

Я анализирую некоторый текст в Ruby, содержащий символ Unicode, который я хотел бы переписать в значения ASCII в одном выходном файле и кодировку HTML в другом.Есть ли простой способ выплевывания не-ASCII символов, найденных в файле?Например:

\u00A0 #should become a " " in the text text file, but   in the html output file

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

Спасибо,
Бен

1 Ответ

2 голосов
/ 02 февраля 2012

Существует метод, который помогает извлечь символы, найденные в вашей строке:

"foo\u00A0bar".chars.to_a
# => ["f", "o", "o", " ", "b", "a", "r"]

Поскольку некоторые из этих символов могут быть многобайтовыми символами UNICODE, возможно, вы захотите расширить их до байтов, чтобы быть более подробным:

"foo\u00A0bar".chars.to_a.collect { |c| [ c, c.bytes.to_a ] }
# => [["f", [102]], ["o", [111]], ["o", [111]], [" ", [194, 160]], ["b", [98]], ["a", [97]], ["r", [114]]]

Массив разбивает конкретные байты, используемые для создания этого символа. В этом случае неразрывный пробел отображается как " ", но на самом деле [194, 160] внутри.

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