1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
| #!/usr/bin/perl
# usage:
# perl utf8tbl.pl > itf.sed
# cat foo.htm |tr /A-Z/ /a-z/ |sed -f itf.sed
# version Sat Apr 4 15:06:51 CEST 2009
# <meta name="description" content="Conversion Unicode UTF-8 encoding">
# <meta name="keywords" content="conversion,unicode,utf-8,encoding,h,dec,hx,U-hex,U-dec,UTF-dec,UTF-hx,lit,Unicode_name,PostScript_name">
# source
# <a href="http://www1.tip.nl/~t876506/utf8tbl.html" target="_blank">http://www1.tip.nl/~t876506/utf8tbl.html</a>
# © Oscar van Vlijmen, 2000
# o.van.vlijmen at tip.nl
# URL-alias of this page: <a href="http://ovv.club.tip.nl" target="_blank">http://ovv.club.tip.nl</a>
# and if this doesn't work: <a href="http://www1.tip.nl/~t876506/index.html" target="_blank">http://www1.tip.nl/~t876506/index.html</a>
# or <a href="http://home-4.worldonline.nl/~t876506/index.html" target="_blank">http://home-4.worldonline.nl/~t876506/index.html</a>
# ---------------------------------------------------------------------------------------------
# --- milestones
# perl $pTbx/utf8tbl.pl <inp > out
# cat $pHtm/10.htm/*.htm* |sed -f $pTbx/itf.sed > a.t
# cat $pHtm/*.htm* |tr /A-Z/ /a-z/ |sed -f $pTbx/itf.sed > a.t
# perl utf8tbl.pl > itf.sed ; cat $pHtm/*.htm |tr /A-Z/ /a-z/ |sed -f itf.sed
# ---------------------------------------------------------------------------------------------
# --- hard's
@key=qw(ch dec hx U-hex U-dec UTF-dec UTF-hx lit Unicode_name PostScript_name);
push(@tab,'�;128;80;00C4;196;195.132;C384;Ä;LATIN CAPITAL LETTER A WITH DIAERESIS;Adieresis');
push(@tab,'�;129;81;00C5;197;195.133;C385;Å;LATIN CAPITAL LETTER A WITH RING ABOVE;Aring');
push(@tab,'�;130;82;00C7;199;195.135;C387;Ç;LATIN CAPITAL LETTER C WITH CEDILLA;Ccedilla');
push(@tab,'�;131;83;00C9;201;195.137;C389;É;LATIN CAPITAL LETTER E WITH ACUTE;Eacute');
push(@tab,'�;132;84;00D1;209;195.145;C391;Ñ;LATIN CAPITAL LETTER N WITH TILDE;Ntilde');
push(@tab,'�;133;85;00D6;214;195.150;C396;Ö;LATIN CAPITAL LETTER O WITH DIAERESIS;Odieresis');
push(@tab,'�;134;86;00DC;220;195.156;C39C;Ü;LATIN CAPITAL LETTER U WITH DIAERESIS;Udieresis');
push(@tab,'�;135;87;00E1;225;195.161;C3A1;á;LATIN SMALL LETTER A WITH ACUTE;aacute');
push(@tab,'�;136;88;00E0;224;195.160;C3A0;à;LATIN SMALL LETTER A WITH GRAVE;agrave');
push(@tab,'�;137;89;00E2;226;195.162;C3A2;â;LATIN SMALL LETTER A WITH CIRCUMFLEX;acircumflex');
push(@tab,'�;138;8A;00E4;228;195.164;C3A4;ä;LATIN SMALL LETTER A WITH DIAERESIS;adieresis');
push(@tab,'�;138;8A;0160;352;197.160;C5A0;;LATIN CAPITAL LETTER S WITH CARON;Scaron');
push(@tab,'�;139;8B;00E3;227;195.163;C3A3;ã;LATIN SMALL LETTER A WITH TILDE;atilde');
push(@tab,'�;140;8C;00E5;229;195.165;C3A5;å;LATIN SMALL LETTER A WITH RING ABOVE;aring');
push(@tab,'�;141;8D;00E7;231;195.167;C3A7;ç;LATIN SMALL LETTER C WITH CEDILLA;ccedilla');
push(@tab,'�;142;8E;00E9;233;195.169;C3A9;é;LATIN SMALL LETTER E WITH ACUTE;eacute');
push(@tab,'�;143;8F;00E8;232;195.168;C3A8;è;LATIN SMALL LETTER E WITH GRAVE;egrave');
push(@tab,'�;144;90;00EA;234;195.170;C3AA;ê;LATIN SMALL LETTER E WITH CIRCUMFLEX;ecircumflex');
push(@tab,'�;145;91;00EB;235;195.171;C3AB;ë;LATIN SMALL LETTER E WITH DIAERESIS;edieresis');
push(@tab,'�;146;92;00ED;237;195.173;C3AD;í;LATIN SMALL LETTER I WITH ACUTE;iacute');
push(@tab,'�;147;93;00EC;236;195.172;C3AC;ì;LATIN SMALL LETTER I WITH GRAVE;igrave');
push(@tab,'�;148;94;00EE;238;195.174;C3AE;î;LATIN SMALL LETTER I WITH CIRCUMFLEX;icircumflex');
push(@tab,'�;149;95;00EF;239;195.175;C3AF;ï;LATIN SMALL LETTER I WITH DIAERESIS;idieresis');
push(@tab,'�;150;96;00F1;241;195.177;C3B1;ñ;LATIN SMALL LETTER N WITH TILDE;ntilde');
push(@tab,'�;151;97;00F3;243;195.179;C3B3;ó;LATIN SMALL LETTER O WITH ACUTE;oacute');
push(@tab,'�;152;98;00F2;242;195.178;C3B2;ò;LATIN SMALL LETTER O WITH GRAVE;ograve');
push(@tab,'�;153;99;00F4;244;195.180;C3B4;ô;LATIN SMALL LETTER O WITH CIRCUMFLEX;ocircumflex');
push(@tab,'�;154;9A;00F6;246;195.182;C3B6;ö;LATIN SMALL LETTER O WITH DIAERESIS;odieresis');
push(@tab,'�;154;9A;0161;353;197.161;C5A1;;LATIN SMALL LETTER S WITH CARON;scaron');
push(@tab,'�;155;9B;00F5;245;195.181;C3B5;õ;LATIN SMALL LETTER O WITH TILDE;otilde');
push(@tab,'�;156;9C;00FA;250;195.186;C3BA;ú;LATIN SMALL LETTER U WITH ACUTE;uacute');
push(@tab,'�;157;9D;00F9;249;195.185;C3B9;ù;LATIN SMALL LETTER U WITH GRAVE;ugrave');
push(@tab,'�;158;9E;00FB;251;195.187;C3BB;û;LATIN SMALL LETTER U WITH CIRCUMFLEX;ucircumflex');
push(@tab,'�;159;9F;00FC;252;195.188;C3BC;ü;LATIN SMALL LETTER U WITH DIAERESIS;udieresis');
push(@tab,'�;160;A0;2020;8224;226.128.160;E280A0;;DAGGER;dagger');
push(@tab,'�;161;A1;00B0;176;194.176;C2B0;°;DEGREE SIGN;degree');
push(@tab,'�;162;A2;00A2;162;194.162;C2A2;¢;CENT SIGN;cent');
push(@tab,'�;163;A3;00A3;163;194.163;C2A3;£;POUND SIGN;sterling');
push(@tab,'�;164;A4;00A7;167;194.167;C2A7;§;SECTION SIGN;section');
push(@tab,'�;165;A5;2022;8226;226.128.162;E280A2;;BULLET;bullet');
push(@tab,'�;166;A6;00B6;182;194.182;C2B6;¶;PILCROW SIGN;paragraph');
push(@tab,'�;166;A6;A6;166;194.166;C2A6;¦;BROKEN BAR;brokenbar');
push(@tab,'�;167;A7;00DF;223;195.159;C39F;ß;LATIN SMALL LETTER SHARP S;germandbls');
push(@tab,'�;168;A8;00AE;174;194.174;C2AE;®;REGISTERED SIGN;registered');
push(@tab,'�;169;A9;00A9;169;194.169;C2A9;©;COPYRIGHT SIGN;copyright');
push(@tab,'�;170;AA;2122;8482;226.132.162;E284A2;;TRADE MARK SIGN;trademark');
push(@tab,'�;170;AA;2122;8482;226.132.162;E284A2;;TRADE MARK SIGN;trademark');
push(@tab,'�;171;AB;00B4;180;194.180;C2B4;´;ACUTE ACCENT;acute');
push(@tab,'�;172;AC;00A8;168;194.168;C2A8;¨;DIAERESIS;dieresis');
push(@tab,'�;173;AD;2260;8800;226.137.160;E289A0;≠;NOT EQUAL TO;notequal');
push(@tab,'�;174;AE;00C6;198;195.134;C386;Æ;LATIN CAPITAL LETTER AE;AE');
push(@tab,'�;175;AF;00D8;216;195.152;C398;Ø;LATIN CAPITAL LETTER O WITH STROKE;Oslash');
push(@tab,'�;176;B0;221E;8734;226.136.158;E2889E;∞;INFINITY;infinity');
push(@tab,'�;177;B1;00B1;177;194.177;C2B1;±;PLUS-MINUS SIGN;plusminus');
push(@tab,'�;178;B2;2264;8804;226.137.164;E289A4;≤;LESS-THAN OR EQUAL TO;lessequal');
push(@tab,'�;178;B2;B2;178;194.178;C2B2;²;SUPERSCRIPT TWO;twosuperior');
push(@tab,'�;179;B3;2265;8805;226.137.165;E289A5;≥;GREATER-THAN OR EQUAL TO;greaterequal');
push(@tab,'�;179;B3;B3;179;194.179;C2B3;³;SUPERSCRIPT THREE;threesuperior');
push(@tab,'�;180;B4;00A5;165;194.165;C2A5;¥;YEN SIGN;yen');
push(@tab,'�;181;B5;00B5;181;194.181;C2B5;µ;MICRO SIGN;mu');
push(@tab,'�;182;B6;2202;8706;226.136.130;E28882;∂;PARTIAL DIFFERENTIAL;partialdiff');
push(@tab,'�;183;B7;2211;8721;226.136.145;E28891;∑;N-ARY SUMMATION;summation');
push(@tab,'�;184;B8;220F;8719;226.136.143;E2888F;∏;N-ARY PRODUCT;product');
push(@tab,'�;185;B9;03C0;960;207.128;CF80;π;GREEK SMALL LETTER PI;pi');
push(@tab,'�;185;B9;B9;185;194.185;C2B9;¹;SUPERSCRIPT ONE;onesuperior');
push(@tab,'�;186;BA;222B;8747;226.136.171;E288AB;∫;INTEGRAL;integral');
push(@tab,'�;187;BB;00AA;170;194.170;C2AA;ª;FEMININE ORDINAL INDICATOR;ordfeminine');
push(@tab,'�;188;BC;00BA;186;194.186;C2BA;º;MASCULINE ORDINAL INDICATOR;ordmasculine');
push(@tab,'�;188;BC;BC;188;194.188;C2BC;¼;VULGAR FRACTION ONE QUARTER;onequarter');
push(@tab,'�;189;BD;03A9;937;206.169;CEA9;Ω;GREEK CAPITAL LETTER OMEGA;Omega');
push(@tab,'�;189;BD;BD;189;194.189;C2BD;½;VULGAR FRACTION ONE HALF;onehalf');
push(@tab,'�;190;BE;00E6;230;195.166;C3A6;æ;LATIN SMALL LETTER AE;ae');
push(@tab,'�;190;BE;BE;190;194.190;C2BE;¾;VULGAR FRACTION THREE QUARTERS;threequarters');
push(@tab,'�;191;BF;00F8;248;195.184;C3B8;ø;LATIN SMALL LETTER O WITH STROKE;oslash');
push(@tab,'�;192;C0;00BF;191;194.191;C2BF;¿;INVERTED QUESTION MARK;questiondown');
push(@tab,'�;193;C1;00A1;161;194.161;C2A1;¡;INVERTED EXCLAMATION MARK;exclamdown');
push(@tab,'�;194;C2;00AC;172;194.172;C2AC;¬;NOT SIGN;logicalnot');
push(@tab,'�;195;C3;221A;8730;226.136.154;E2889A;√;SQUARE ROOT;radical');
push(@tab,'�;196;C4;0192;402;198.146;C692;;LATIN SMALL LETTER F WITH HOOK;florin');
push(@tab,'�;197;C5;2248;8776;226.137.136;E28988;≈;ALMOST EQUAL TO;approxequal');
push(@tab,'�;198;C6;2206;8710;226.136.134;E28886;∆;INCREMENT;Delta');
push(@tab,'�;199;C7;00AB;171;194.171;C2AB;«;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;guillemotleft');
push(@tab,'�;200;C8;00BB;187;194.187;C2BB;»;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;guillemotright');
push(@tab,'�;201;C9;2026;8230;226.128.166;E280A6;
;HORIZONTAL ELLIPSIS;ellipsis');
push(@tab,'�;202;CA;00A0;160;194.160;C2A0;*;NO-BREAK SPACE;nobreakspace');
push(@tab,'�;203;CB;00C0;192;195.128;C380;À;LATIN CAPITAL LETTER A WITH GRAVE;Agrave');
push(@tab,'�;204;CC;00C3;195;195.131;C383;Ã;LATIN CAPITAL LETTER A WITH TILDE;Atilde');
push(@tab,'�;205;CD;00D5;213;195.149;C395;Õ;LATIN CAPITAL LETTER O WITH TILDE;Otilde');
push(@tab,'�;206;CE;0152;338;197.146;C592;;LATIN CAPITAL LIGATURE OE;OE');
push(@tab,'�;207;CF;0153;339;197.147;C593;;LATIN SMALL LIGATURE OE;oe');
push(@tab,'�;208;D0;2013;8211;226.128.147;E28093;;EN DASH;endash');
push(@tab,'�;208;D0;D0;208;195.144;C390;Ð;LATIN CAPITAL LETTER ETH;Eth');
push(@tab,'�;209;D1;2014;8212;226.128.148;E28094;;EM DASH;emdash');
push(@tab,'�;210;D2;201C;8220;226.128.156;E2809C;;LEFT DOUBLE QUOTATION MARK;quotedblleft');
push(@tab,'�;211;D3;201D;8221;226.128.157;E2809D;;RIGHT DOUBLE QUOTATION MARK;quotedblright');
push(@tab,'�;212;D4;2018;8216;226.128.152;E28098;;LEFT SINGLE QUOTATION MARK;quoteleft');
push(@tab,'�;213;D5;2019;8217;226.128.153;E28099;;RIGHT SINGLE QUOTATION MARK;quoteright');
push(@tab,'�;214;D6;00F7;247;195.183;C3B7;÷;DIVISION SIGN;divide');
push(@tab,'�;215;D7;25CA;9674;226.151.138;E2978A;◊;LOZENGE;lozenge');
push(@tab,'�;215;D7;D7;215;195.151;C397;×;MULTIPLICATION SIGN;multiply');
push(@tab,'�;216;D8;00FF;255;195.191;C3BF;ÿ;LATIN SMALL LETTER Y WITH DIAERESIS;ydieresis');
push(@tab,'�;217;D9;0178;376;197.184;C5B8;;LATIN CAPITAL LETTER Y WITH DIAERESIS;Ydieresis');
push(@tab,'�;218;DA;2044;8260;226.129.132;E28184;⁄;FRACTION SLASH;fraction');
push(@tab,'�;219;DB;20AC;8364;226.130.172;E282AC;;EURO SIGN;currency');
push(@tab,'�;220;DC;2039;8249;226.128.185;E280B9;;SINGLE LEFT-POINTING ANGLE QUOTATION MARK;guilsinglleft');
push(@tab,'�;221;DD;203A;8250;226.128.186;E280BA;;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK;guilsinglright');
push(@tab,'�;221;DD;DD;221;195.157;C39D;Ý;LATIN CAPITAL LETTER Y WITH ACUTE;Yacute');
push(@tab,'�;222;DE;DE;222;195.158;C39E;Þ;LATIN CAPITAL LETTER THORN;Thorn');
push(@tab,'�;222;DE;FB01;64257;239.172.129;EFAC81;fi;LATIN SMALL LIGATURE FI;fi');
push(@tab,'�;223;DF;FB02;64258;239.172.130;EFAC82;fl;LATIN SMALL LIGATURE FL;fl');
push(@tab,'�;224;E0;2021;8225;226.128.161;E280A1;;DOUBLE DAGGER;daggerdbl');
push(@tab,'�;225;E1;00B7;183;194.183;C2B7;·;MIDDLE DOT;periodcentered');
push(@tab,'�;226;E2;201A;8218;226.128.154;E2809A;;SINGLE LOW-9 QUOTATION MARK;quotesinglbase');
push(@tab,'�;227;E3;201E;8222;226.128.158;E2809E;;DOUBLE LOW-9 QUOTATION MARK;quotedblbase');
push(@tab,'�;228;E4;2030;8240;226.128.176;E280B0;;PER MILLE SIGN;perthousand');
push(@tab,'�;229;E5;00C2;194;195.130;C382;Â;LATIN CAPITAL LETTER A WITH CIRCUMFLEX;Acircumflex');
push(@tab,'�;230;E6;00CA;202;195.138;C38A;Ê;LATIN CAPITAL LETTER E WITH CIRCUMFLEX;Ecircumflex');
push(@tab,'�;231;E7;00C1;193;195.129;C381;Á;LATIN CAPITAL LETTER A WITH ACUTE;Aacute');
push(@tab,'�;232;E8;00CB;203;195.139;C38B;Ë;LATIN CAPITAL LETTER E WITH DIAERESIS;Edieresis');
push(@tab,'�;233;E9;00C8;200;195.136;C388;È;LATIN CAPITAL LETTER E WITH GRAVE;Egrave');
push(@tab,'�;234;EA;00CD;205;195.141;C38D;Í;LATIN CAPITAL LETTER I WITH ACUTE;Iacute');
push(@tab,'�;235;EB;00CE;206;195.142;C38E;Î;LATIN CAPITAL LETTER I WITH CIRCUMFLEX;Icircumflex');
push(@tab,'�;236;EC;00CF;207;195.143;C38F;Ï;LATIN CAPITAL LETTER I WITH DIAERESIS;Idieresis');
push(@tab,'�;237;ED;00CC;204;195.140;C38C;Ì;LATIN CAPITAL LETTER I WITH GRAVE;Igrave');
push(@tab,'�;238;EE;00D3;211;195.147;C393;Ó;LATIN CAPITAL LETTER O WITH ACUTE;Oacute');
push(@tab,'�;239;EF;00D4;212;195.148;C394;Ô;LATIN CAPITAL LETTER O WITH CIRCUMFLEX;Ocircumflex');
push(@tab,'�;240;F0;F0;240;195.176;C3B0;ð;LATIN SMALL LETTER ETH;eth');
push(@tab,'�;240;F0;F8FF;63743;239.163.191;EFA3BF;;Apple logo;apple');
push(@tab,'�;241;F1;00D2;210;195.146;C392;Ò;LATIN CAPITAL LETTER O WITH GRAVE;Ograve');
push(@tab,'�;242;F2;00DA;218;195.154;C39A;Ú;LATIN CAPITAL LETTER U WITH ACUTE;Uacute');
push(@tab,'�;243;F3;00DB;219;195.155;C39B;Û;LATIN CAPITAL LETTER U WITH CIRCUMFLEX;Ucircumflex');
push(@tab,'�;244;F4;00D9;217;195.153;C399;Ù;LATIN CAPITAL LETTER U WITH GRAVE;Ugrave');
push(@tab,'�;245;F5;0131;305;196.177;C4B1;ı;LATIN SMALL LETTER DOTLESS I;dotlessi');
push(@tab,'�;246;F6;02C6;710;203.134;CB86;;MODIFIER LETTER CIRCUMFLEX ACCENT;circumflex');
push(@tab,'�;247;F7;02DC;732;203.156;CB9C;;SMALL TILDE;tilde');
push(@tab,'�;248;F8;00AF;175;194.175;C2AF;¯;MACRON;macron');
push(@tab,'�;249;F9;02D8;728;203.152;CB98;˘;BREVE;breve');
push(@tab,'�;250;FA;02D9;729;203.153;CB99;˙;DOT ABOVE;dotaccent');
push(@tab,'�;251;FB;02DA;730;203.154;CB9A;˚;RING ABOVE;ring');
push(@tab,'�;252;FC;00B8;184;194.184;C2B8;¸;CEDILLA;cedilla');
push(@tab,'�;253;FD;02DD;733;203.157;CB9D;˝;DOUBLE ACUTE ACCENT;hungarumlaut');
push(@tab,'�;253;FD;FD;253;195.189;C3BD;ý;LATIN SMALL LETTER Y WITH ACUTE;yacute');
push(@tab,'�;254;FE;02DB;731;203.155;CB9B;˛;OGONEK;ogonek');
push(@tab,'�;254;FE;FE;254;195.190;C3BE;þ;LATIN SMALL LETTER THORN;thorn');
push(@tab,'�;255;FF;02C7;711;203.135;CB87;ˇ;CARON;caron');
# --- check
if(0) {
foreach(@tab) {print "$_\n"} print "\n";
foreach(@key) {print "$_\n"} print "\n";
}
# --- params
# 0 1 2 3 4 5 6 7 8 9
# @key=qw(ch dec hx U-hex U-dec UTF-dec UTF-hx lit Unicode_name PostScript_name);
# --- output
print "# FROM: $U-hex PostScript_name\n\n";
foreach(@tab) { @a=split(';');
# -- U-hex >
$w=lc(@a[9]);print "s/\&$w;/@a[7]/g;\n";
$w=lc(@a[3]);
print "s/\&#x$w;/@a[7]/g;\n";
if($w=~s/^00//){print "s/\&#x$w;/@a[7]/g;\n"}
}
print "\n";
# --- finale
exit 0; |