Mercurial > hg > nginx
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: '$_'"; |