comparison contrib/unicode2nginx/unicode-to-nginx.pl @ 6665:8752257e883f

Contrib: unicode2nginx compatibility with recent Perl versions. In recent Perl versions unpack("C*") unpacks wide characters by default, likely since perl 5.10 (seen at least in perl 5.20). Replaced with unpack("U0C*") instead to unpack bytes. While here, improved style and updated my email.
author Maxim Dounin <mdounin@mdounin.ru>
date Wed, 24 Aug 2016 15:53:17 +0300
parents 63a820b0bc6c
children
comparison
equal deleted inserted replaced
6664:0ee6f023ef92 6665:8752257e883f
8 # http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT 8 # http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT
9 # http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT 9 # http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT
10 10
11 # Needs perl 5.6 or later. 11 # Needs perl 5.6 or later.
12 12
13 # Written by Maxim Dounin, mdounin@rambler-co.ru 13 # Written by Maxim Dounin, mdounin@mdounin.ru
14 14
15 ############################################################################### 15 ###############################################################################
16 16
17 require 5.006; 17 require 5.006;
18 18
31 my $un_code = $2; 31 my $un_code = $2;
32 my $un_name = $3; 32 my $un_name = $3;
33 33
34 # Produce UTF-8 sequence from character code; 34 # Produce UTF-8 sequence from character code;
35 35
36 my $un_utf8 = join('', map { sprintf("%02X", $_) } unpack("C*", pack("U", hex($un_code)))); 36 my $un_utf8 = join('',
37 map { sprintf("%02X", $_) }
38 unpack("U0C*", pack("U", hex($un_code)))
39 );
37 40
38 print " $cs_code $un_utf8 ; $un_name\n"; 41 print " $cs_code $un_utf8 ; $un_name\n";
39 42
40 } else { 43 } else {
41 warn "Unrecognized line: '$_'"; 44 warn "Unrecognized line: '$_'";