Кодування Perl та символів

Час прочитання статті.

встановіть атрибут

Як автор, так і перекладач

Стаття

Опубліковано 28В жовтняВ 2014В - Оновлено 29В червняВ 2016В

Соціальні зв’язки

I. Вступ ▲

II. ASCII ▲

Оскільки байт містить 8B бітів, найважливіший біт символу ASCII завжди дорівнює 0.

III. Інші кодування символів

IV. Юнікод

V. Формати перетворення Unicode

кодові точки

Персонажі

VI. Perl 5 та кодування символів

В іншому випадку ви можете дуже швидко ввести в оману і втратити відстеження того, які рядки є байтовими, а які текстовими.

VII. Перевірте своє оточення

Знак євро € не є в таблиці кодування Latin-1, тому, якщо ваш термінал знаходиться в цьому кодуванні, знак євро відображатиметься неправильно.

Термінали Windows в основному використовують кодування cp *, наприклад cp850 або cp858 (доступні лише в нових версіях Encode) для німецьких установок. Решта середовища використовує кодування Windows- *, наприклад, Windows-1252 для кількох західноєвропейських місць.

повертає список доступних кодувань.

VIII-A. В "В Великі символи для друку" В "▲

Іноді ви можете побачити таке попереджувальне повідомлення: Широкоформатний друк .

VIII-B. Огляньте ланцюги

Але ви можете подолати це, використовуючи модуль Devel: Peek.

Але під впливом кодування використання деякі функції AUTOLOAD перестають працювати, і модулі не є безпечними для потоків .

IX. Кодування символів в Інтернеті

Для HTML-файлів заголовок зазвичай виглядає так:

X. Модулі

Х-А. LWP: UserAgent та WWW: Механізувати ▲

X-B. DBI ▲

  • Для Mysql і DBD: mysql, передайте опцію mysql_enable_utf8 => 1 до виклику DBI-> connect .
  • Для PostgresSql та DBD: Pg, встановіть атрибут pg_enable_utf8 на 1.
  • Для SQLite та DBD: SQLite, встановіть атрибут sqlite_unicode на 1.

Гарне читання для початку про локалі - це perldoc perllocale. .

XII. Філософія ▲

XIII. Погано розроблений ▲

XIV. Інший приклад: XML ▲

Є дві причини, чому цього достатньо:

Але багато кодувань сумісні з ASCII для перших 127 байт (наприклад, UTF-7, UCS-2 та UTF-16).

Таким чином, інформація про кодування доступна, парсер повинен спочатку відгадати її, щоб правильно її витягти.

XV. Як правильно це зробити: Позасмугові вивіски

То як ти робиш це правильно? ?

І там це могло спрацювати.

XVI. Для отримання додаткової інформації ▲

XVII. Корисні інструменти

  • gucharmap, карта символів Unicode Gnome.
  • Дамп UTF-8 показує вам імена символів, що не належать до ASCII.
  • hexdump ніколи не бреше (на Debian знаходиться в пакеті bsdmainutils).
  • iconv перетворює текстові файли з одного кодування в інше.

XVIII. Подяка ▲

Я також хотів би подякувати за їх відповідні обговорення:

XIX. Подяка Розвиток ▲