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 mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить