unicode-to-nginx.pl

Maxim Dounin mdounin на mdounin.ru
Вс Авг 21 19:11:15 UTC 2016


Hello!

On Sat, Aug 20, 2016 at 09:27:37AM +0300, Andrey Khlopenov wrote:

> Добрый день.
> А unicode-to-nginx.pl в дистрибутиве nginx сейчас актуален?
> Ибо при попытке конвертирования  http://www.unicode.org/Public/
> MAPPINGS/VENDORS/MISC/KOI8-R.TXT получаю таблицу, которая отличается от
> koi-utf, что лежит возле скрипта.
> Ну и, соотв., nginx ругается, если подключить такой charset_map.

Последние 10 лет его никто не трогал, и, судя по всему, с 
современным перлом он работает некорректно.  Чтобы было правильно, 
надо добавить "U0" в unpack, как-то так:

diff --git a/contrib/unicode2nginx/unicode-to-nginx.pl b/contrib/unicode2nginx/unicode-to-nginx.pl
--- a/contrib/unicode2nginx/unicode-to-nginx.pl
+++ b/contrib/unicode2nginx/unicode-to-nginx.pl
@@ -33,7 +33,7 @@ while (<>) {
 
 		# Produce UTF-8 sequence from character code;
 
-		my $un_utf8 = join('', map { sprintf("%02X", $_) } unpack("C*", pack("U", hex($un_code))));
+		my $un_utf8 = join('', map { sprintf("%02X", $_) } unpack("U0C*", pack("U", hex($un_code))));
 
 		print "    $cs_code  $un_utf8 ; $un_name\n";


-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru