upstream nginx-0.7.31
[nginx.git] / nginx / contrib / unicode2nginx / unicode-to-nginx.pl
1 #!/usr/bin/perl -w
2
3 # Convert unicode mappings to nginx configuration file format.
4
5 # You may find useful mappings in various places, including
6 # unicode.org official site:
7 #
8 # http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT
9 # http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT
10
11 # Needs perl 5.6 or later.
12
13 # Written by Maxim Dounin, mdounin@rambler-co.ru
14
15 ###############################################################################
16
17 require 5.006;
18
19 while (<>) {
20         # Skip comments and empty lines
21
22         next if /^#/;
23         next if /^\s*$/;
24         chomp;
25
26         # Convert mappings
27
28         if (/^\s*0x(..)\s*0x(....)\s*(#.*)/) {
29                 # Mapping <from-code> <unicode-code> "#" <unicode-name>
30                 my $cs_code = $1;
31                 my $un_code = $2;
32                 my $un_name = $3;
33
34                 # Produce UTF-8 sequence from character code;
35
36                 my $un_utf8 = join('', map { sprintf("%02X", $_) } unpack("C*", pack("U", hex($un_code))));
37
38                 print "    $cs_code  $un_utf8 ; $un_name\n";
39
40         } else {
41                 warn "Unrecognized line: '$_'";
42         }
43 }
44
45 ###############################################################################