Я помогаю клиенту преобразовать свой сайт объявлений Perl для плоских файлов из ISO-8859-1 в Unicode.
Поскольку это мой первый раз, я хотел бы знать, заполнен ли следующий «контрольный список». В тестировании все работает хорошо, но я могу упустить что-то, что может произойти только в редких случаях.
Это то, что я сделал до сих пор (простите, что я включил только "сводные" примеры кода):
Убедитесь, что файлы всегда читаются и записываются в UTF-8:
use open ':utf8';
Убедитесь, что вход CGI получен как UTF-8 (сайт не использует CGI.pm):
s{%([a-fA-F0-9]{2})}{ pack ("C", hex ($1)) }eg; # Kept from existing code
s{%u([0-9A-F]{4})}{ pack ('U*', hex ($1)) }eg; # Added
utf8::decode $_;
Убедитесь, что текст напечатан в формате UTF-8:
binmode STDOUT, ':utf8';
Убедитесь, что браузеры интерпретируют мой контент как UTF-8:
Content-Type: text/html; charset=UTF-8
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
Убедитесь, что формы отправляют UTF-8 (вероятно, нет необходимости, если задана кодировка страницы):
accept-charset="UTF-8"
Не думайте, что мне нужно следующее, поскольку встроенный текст (меню, заголовки и т. Д.) Есть только в ASCII:
use utf8;
Это выглядит разумно или я что-то упустил?
РЕДАКТИРОВАТЬ: Я должен также упомянуть, что мы будем запускать одноразовый пакет для чтения всех существующих файлов текстовых данных и сохранения их в кодировке UTF-8.