Mi sono scontrato con questa necessita' e, dopo aver controllato vari tool e impostazioni di conversione caratteri di vari editor diversi, mi sono reso conto che nessuno di loro faceva quello che mi serviva. P
er cui ho risolto in js(ebbene si prorpio in javascript) il mio problema.
Dovendo convertire caratteri russi, giapponesi e cinesi ho creato la seguente pagina per ricodificare i caratteri.
Spero vi possa essere utile e magari migliorandola un attimo si può creare un tool utile per risolvere il solito problema di codifica.
Incollate il codice in una pagina html e provatelo!!!!
Codice PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, [url]www.pspad.com[/url]">
<title></title>
<script type="text/javascript">
function toHtml()
{
var src = document.forms["str_converter"].from.value;
var dest = '';
for( var i=0; i<src.length; i++)
{
if(src.charCodeAt(i)>127)
dest+= '&#' + src.charCodeAt(i) + ';';
else
dest += src.charAt(i);
}
document.forms["str_converter"].to.value = dest;
}
function toUtf8()
{
var src = document.forms["str_converter"].from.value;
var dest = "";
var curr ="";
for(var i=0 ; i<src.length ; i++)
{
curr="";
curr=src.charAt(i);
curr1 = src.charAt(i+1);
if( curr=="&" && curr1=="#" ) //lookahead
{
//run until find ';'
tmp = "";
var j =0;
for( j=i+2 ; j<src.length ; j++ )
{
curr2 = src.charAt(j);
if( curr2==";" )
break;
tmp += curr2;
}
if( !isNaN(tmp) )
{
dest += String.fromCharCode(tmp);
i = j;
}
else
dest+=curr;
}
else
dest+=curr;
}
document.forms["str_converter"].to.value = dest;
}
</script>
</head>
<body>
<center>
<hr />
<form name="str_converter" action="#" onsubmit="return false">
Insert utf8 string
<textarea style="width:80%;height:250px;" name="from" rows="15" cols="15"></textarea>
<button onclick="toHtml()">Converti in codifica HTML</button>
<button onclick="toUtf8()">Converti in codifica UTF-8</button>
<button onclick="javascript:document.forms['str_converter'].reset()">Cancella tutto</button>
<textarea style="width:80%;height:300px;" name="to" rows="15" cols="15"></textarea>
</form>
<hr />
</center>
</body>
</html>
Ne ho fatta una versione automazzata anche in php per convertire blocchi di file .html però questo non è il posto giusto per parlarne.
NOTE:
La funzione di conversione da codice a carattere e' stata fatta in fretta se qlkuno avesse una sol migliore magari con reg exp posti pure la sua versione.
Se magari ci sono modi migliori del mio fatemelo sapere anche perche' sono sclerato abb a cercare e ho risolto così.
Ovviamente il codice nn e' prorpio bellissimo ne elegante ne efficente ma la frettta ahimé a volta obbliga certe scelte.