Return to unicode-to-nginx.pl CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / nginx / contrib / unicode2nginx |
1.1 ! misho 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: ###############################################################################