#!/usr/bin/perl # # This script converts iso8859-1 chacter set to unicode # Author Ove Johansson # 2008-04-30 # new codes added20090912 # use strict ; use warnings ; use bytes; # my @tt=(); $tt[0]="�";#NUL $tt[1]="" ;# SOH start of heading $tt[2]="" ;# STX start of text $tt[3]="" ;# ETX end of text $tt[4]="" ;# EOT end of transmission $tt[5]="" ;# ENQ enquire $tt[6]="" ;# ACK ACKNOWLEDGE $tt[7]="" ;#BEL bell $tt[8]="" ;# BS backspace $tt[9]=" " ;# HT horisontal tab $tt[10]="\n";# newline $tt[11]=" "; # VT vertical tab $tt[12]=" "; # FF form feed $tt[13]="\r";# carrage return $tt[14]=""; #so shift out $tt[15]=""; #si shift in $tt[16]=""; #dle data link escape $tt[17]=""; #dc1 device control one $tt[18]=""; #dc2 $tt[19]=""; #dc3 $tt[20]=""; # dc4 $tt[21]=""; # nak negative acknowlege $tt[22]=""; # syn SYNCHRONOUS IDLE $tt[23]=""; # END OF TRANSMISSION BLOCK $tt[24]=""; # cancel $tt[25]=""; # END OF MEDIUM $tt[26]=""; # subsitute $tt[27]=""; # escape $tt[28]=""; # FILE SEPARATOR $tt[29]=""; # group separator $tt[30]=""; # record serparator $tt[31]=""; # unit serarator $tt[32]=" "; $tt[33]="!"; $tt[34]="""; $tt[35]="#"; $tt[36]="\$"; $tt[37]="%"; $tt[38]="&"; $tt[39]="\'"; $tt[40]="("; $tt[41]=")"; $tt[42]="*"; $tt[43]="+"; $tt[44]=","; $tt[45]="-"; $tt[46]="."; $tt[47]="/"; $tt[48]='0'; $tt[49]='1'; $tt[50]="2"; $tt[51]="3"; $tt[52]="4"; $tt[53]="5"; $tt[54]="6"; $tt[55]="7"; $tt[56]="8"; $tt[57]="9"; $tt[58]=":"; $tt[59]=";"; $tt[60]="<"; $tt[61]="="; $tt[62]=">"; $tt[63]="?"; $tt[64]="@"; $tt[65]="A"; $tt[66]="B"; $tt[67]="C"; $tt[68]="D"; $tt[69]="E"; $tt[70]="F"; $tt[71]="G"; $tt[72]="H"; $tt[73]="I"; $tt[74]="J"; $tt[75]="K"; $tt[76]="L"; $tt[77]="M"; $tt[78]="N"; $tt[79]="O"; $tt[80]="P"; $tt[81]="Q"; $tt[82]="R"; $tt[83]="S"; $tt[84]="T"; $tt[85]="U"; $tt[86]="V"; $tt[87]="W"; $tt[88]="X"; $tt[89]="Y"; $tt[90]="Z"; $tt[91]="["; $tt[92]="\\"; $tt[93]="]"; $tt[94]="^"; $tt[95]="_"; $tt[96]="`"; $tt[97]="a"; $tt[98]="b"; $tt[99]="c"; $tt[100]="d"; $tt[101]="e"; $tt[102]="f"; $tt[103]="g"; $tt[104]="h"; $tt[105]="i"; $tt[106]="j"; $tt[107]="k"; $tt[108]="l"; $tt[109]="m"; $tt[110]="n"; $tt[111]="o"; $tt[112]="p"; $tt[113]="q"; $tt[114]="r"; $tt[115]="s"; $tt[116]="t"; $tt[117]="u"; $tt[118]="v"; $tt[119]="w"; $tt[120]="x"; $tt[121]="y"; $tt[122]="z"; $tt[123]="{"; $tt[124]="|"; $tt[125]="}"; $tt[126]="~"; $tt[127]=""; $tt[128]="€"; $tt[129]=""; $tt[130]="‚"; $tt[131]="ƒ"; $tt[132]="&bdquo"; $tt[133]="…"; $tt[134]="&dagger"; $tt[135]="&Dagger"; $tt[136]="ˆ"; $tt[137]="‰"; $tt[138]="Š"; $tt[139]="‹"; $tt[140]="Œ"; $tt[141]=""; $tt[142]="Ž"; $tt[143]=""; $tt[144]=""; $tt[145]="‘"; $tt[146]="’"; $tt[147]="“"; $tt[148]="”"; $tt[149]="•"; $tt[150]="–"; $tt[151]="—"; $tt[152]="˜"; $tt[153]="™"; $tt[154]="š"; $tt[155]="›"; $tt[156]="œ"; $tt[157]=""; $tt[158]="ž"; $tt[159]="Ÿ"; $tt[160]=" "; $tt[161]="¡"; $tt[162]="¢"; $tt[163]="£"; $tt[164]="¤"; $tt[165]="¥"; $tt[166]="¦"; $tt[167]="§"; $tt[168]="¨"; $tt[169]="©"; $tt[170]="ª"; $tt[171]="«"; $tt[172]="¬"; $tt[173]="­"; $tt[174]="®"; $tt[175]="¯"; $tt[176]="°"; $tt[177]="±"; $tt[178]="²"; $tt[179]="³"; $tt[180]="´"; $tt[181]="µ"; $tt[182]="¶"; $tt[183]="·"; $tt[184]="¸"; $tt[185]="¹"; $tt[186]="º"; $tt[187]="»"; $tt[188]="¼"; $tt[189]="½"; $tt[190]="¾"; $tt[191]="¿"; $tt[192]="À"; $tt[193]="Á"; $tt[194]="Â"; $tt[195]="Ã"; $tt[196]="Ä"; $tt[197]='Å'; $tt[198]="Æ"; $tt[199]="Ç"; $tt[200]="È"; $tt[201]="É"; $tt[202]="Ê"; $tt[203]="Ë"; $tt[204]="Ì"; $tt[205]="Í"; $tt[206]="Î"; $tt[207]="Ï"; $tt[208]="Ð"; $tt[209]="Ñ"; $tt[210]="Ò"; $tt[211]="Ó"; $tt[212]="Ô"; $tt[213]="Õ"; $tt[214]="Ö"; $tt[215]="×"; $tt[216]="Ø"; $tt[217]="Ù"; $tt[218]="Ú"; $tt[219]="Û"; $tt[220]="Ü"; $tt[221]="Ý"; $tt[222]="Þ"; $tt[223]="ß"; $tt[224]="à"; $tt[225]="á"; $tt[226]="â"; $tt[227]="ã"; $tt[228]="ä"; $tt[229]="å"; $tt[230]="æ"; $tt[231]="ç"; $tt[232]="è"; $tt[233]="é"; $tt[234]="ê"; $tt[235]="ë"; $tt[236]="ì"; $tt[237]="í"; $tt[238]="î"; $tt[239]="ï"; $tt[240]="ð"; $tt[241]="ñ"; $tt[242]="ò"; $tt[243]="ó"; $tt[244]="ô"; $tt[245]="õ"; $tt[246]="ö"; $tt[247]="÷"; $tt[248]="ø"; $tt[249]="ù"; $tt[250]="ú"; $tt[251]="û"; $tt[252]="ü"; $tt[253]="ý"; $tt[254]="þ"; $tt[255]="ÿ"; my $in; my $key ; # Use arg1 to verify single char if ( $in=shift ) { print "$tt[$in]"; exit 0 ; } # use as a filter from stdin to stdout while ( sysread STDIN, $in, 1 ) { $key = bytes::ord $in ; # print "key is ".$key."\n" ; if ( $key < 0 ) { $key= $key+128; } # unpack "I" ? if ( length ( $tt[ $key ] ) ) { print "$tt[ $key ]" ; } } # end