|  | #!/usr/bin/perl -w | 
|  |  | 
|  | # Convert unicode mappings to nginx configuration file format. | 
|  |  | 
|  | # You may find useful mappings in various places, including | 
|  | # unicode.org official site: | 
|  | # | 
|  | # http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1251.TXT | 
|  | # http://www.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8-R.TXT | 
|  |  | 
|  | # Needs perl 5.6 or later. | 
|  |  | 
|  | # Written by Maxim Dounin, mdounin@rambler-co.ru | 
|  |  | 
|  | ############################################################################### | 
|  |  | 
|  | require 5.006; | 
|  |  | 
|  | while (<>) { | 
|  | # Skip comments and empty lines | 
|  |  | 
|  | next if /^#/; | 
|  | next if /^\s*$/; | 
|  | chomp; | 
|  |  | 
|  | # Convert mappings | 
|  |  | 
|  | if (/^\s*0x(..)\s*0x(....)\s*(#.*)/) { | 
|  | # Mapping <from-code> <unicode-code> "#" <unicode-name> | 
|  | my $cs_code = $1; | 
|  | my $un_code = $2; | 
|  | my $un_name = $3; | 
|  |  | 
|  | # Produce UTF-8 sequence from character code; | 
|  |  | 
|  | my $un_utf8 = join('', map { sprintf("%02X", $_) } unpack("C*", pack("U", hex($un_code)))); | 
|  |  | 
|  | print "    $cs_code  $un_utf8 ; $un_name\n"; | 
|  |  | 
|  | } else { | 
|  | warn "Unrecognized line: '$_'"; | 
|  | } | 
|  | } | 
|  |  | 
|  | ############################################################################### |