вопрос кодировки в Perl - PullRequest
2 голосов
/ 11 июня 2011

У меня есть вопрос о кодировке, и я хотел бы попросить о помощи. Я замечаю, что если в качестве кодировки я выберу «UTF-8», то здесь будут (как минимум) две двойные кавычки " и . Но когда я выбираю «ISO-8859-1» в качестве кодировки, я вижу, что последняя двойная кавычка становится ¡°, а иногда, например, “.

Может ли кто-нибудь объяснить, почему это так? Как можно сопоставить и заменить его на ", используя regexp в perl?

Большое спасибо.

Ответы [ 2 ]

3 голосов
/ 11 июня 2011

ISO-8859-1 - кодирование одного байта на символ.Необычные двойные кавычки Unicode не входят в набор символов ISO-8859-1.Итак, вы видите многобайтовый символ, представленный в виде последовательности байтов ISO-8859-1.

Чтобы соответствовать этим странным вещам, см. Справочную страницу perlunicode , особенно \escape-последовательности x {...} и \ N {...}.

Чтобы ответить на ваш вопрос, попробуйте \ x {201C}, чтобы сопоставить УНИКАЛЬНЫЙ ЛЕВОЙ ДВОЙНОЙ ЦИТАТИЧЕСКОЙ МАРКИРОВКИ и \ x {201D}, чтобы соответствоватьПРАВАЯ ДВОЙНАЯ ЦИТАТА.Вы пропустили последнее в своем вопросе: -).

[обновление]

Я должен был предоставить свою ссылку ... У какого-то хорошего джентльмена в Великобритании есть страница на ASCII иЮникод кавычки .Простая ванильная двойная кавычка ASCII / ISO-8859-1 называется просто QUOTATION MARK.

0 голосов
/ 14 июня 2011

Может быть это Old post поможет ..

...