Перловикам о кодировках
Mar. 11th, 2008 10:18 am1. В стандартной поставке perl 5.10 появился очень нужный, по идее, модуль - encoding::warnings, который включает предупреждение о неявном преобразовании 8-битных байтовых строк в юникодовые строки. Поскольку я недавно "прострелил с его помощью ногу", хочу предупредить коллег, что этот модуль принципиально не совместим со случаем, когда байтовые строки задаются с помощью литералов (т.е. в разного рода кавычках) после "use encoding::warnings", поскольку при этом указанные строки неявно преобразуются в юникод с помощью кодировки latin-1 (и без всяких варнингов).
2. Появилась идея, как сделать декодировку 8-битных исходников полностью без побочных эффектов. Появившийся на CPANе encoding::source, кроме того, что требует perl >= 5.9.5, допускает вылезание $^ENCODING за стадию компиляции программы.
К сожалению, моя идея требует perl 5.10, т.к. только в 5.10 %^H работает, как нужно.
3. Вообще, perl 5.10 создаёт впечатление очень хорошо проделанной работы, можно потихоньку его продвигать на продакшн сервера.
2. Появилась идея, как сделать декодировку 8-битных исходников полностью без побочных эффектов. Появившийся на CPANе encoding::source, кроме того, что требует perl >= 5.9.5, допускает вылезание $^ENCODING за стадию компиляции программы.
К сожалению, моя идея требует perl 5.10, т.к. только в 5.10 %^H работает, как нужно.
3. Вообще, perl 5.10 создаёт впечатление очень хорошо проделанной работы, можно потихоньку его продвигать на продакшн сервера.