Кодування 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. Подяка ▲
Я також хотів би подякувати за їх відповідні обговорення: