Hallo!
Ich habe ein - wie ich finde - verrücktes Problem. Ich habe eine utf-8 kodierte Seite, auf der ich alle Umlaute geändert habe - ä=ä etc.
»»
Ähnliches trieb mich schon zur Verzweiflung. Um den Zeichenraum oberhalb
der #128 zu kontrollieren verfasste ich folgende PHP-Funktion:
function lesen($wort)
{
$soll=Array(
'€','','‚','ƒ','„','…','†','‡','ˆ','‰','Š',
'‹','Œ','','Ž','','','‘','’','“','”','•',
'–','—','˜','™','š','›','œ','','ž','Ÿ',' ',
'¡','¢','£','¤','¥','¦','§','¨','©','ª','«',
'¬','­','®','¯','°','±','²','³','´','µ','¶',
'·','¸','¹','º','»','¼','½','¾','¿','À',
'Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê',
'Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô',
'Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ',
'ß','à','á','â','ã','ä','å','æ','ç','è',
'é','ê','ë','ì','í','î','ï','ð','ñ','ò',
'ó','ô','õ','ö','÷','ø','ù','ú','û','ü',
'ý','þ','ÿ');
$erg = "$wort";
$serch = array("amp;",chr(92)."r",chr(92)."n",chr(10),chr(13));
$erg = str_replace ($serch,"",$erg);
$erg = str_replace (" "," ",$erg);
$erg = str_replace (" "," ",$erg);
$erg = str_replace (" "," ",$erg);
$erg = str_replace (" "," ",$erg);
$erx = "";
for($i=0;$i<strlen($erg);$i++){
$x=ord($erg[$i]);
if($erg[$i]=='€')$erx.='€';
if(($x>31)and($x<128))$erx.=$erg[$i];
if($x>127)$erx.=$soll[$x-128];}
return($erx);
}
Und mit dem PHP-Aufruf: ~~~php
$neuerText = lesen(htmlentities($alterText));
Komme ich auf die sichere Seite.
In den Zeilen:~~~php
$serch = array("amp;",chr(92)."r",chr(92)."n",chr(10),chr(13));
$erg = str_replace ($serch,"",$erg);
$erg = str_replace (" "," ",$erg);
$erg = str_replace (" "," ",$erg);
$erg = str_replace (" "," ",$erg);
$erg = str_replace (" "," ",$erg);
werden [amp;], [TAB], [CR], [LF] und Leerzeichenketten vernichtet. Das muß man für sich anpassen.
Apropos htmlentities()
oder was ich sonst nicht verstanden habe, hat ü
in:&uuml;
verwandelt!
Und hier das analoge für Formularfelder in javascript:
function umlaute(wort)
{
soll=new Array(
'€','','‚','ƒ','„','…','†','‡','ˆ','‰','Š',
'‹','Œ','','Ž','','','‘','’','“','”','•',
'–','—','˜','™','š','›','œ','','ž','Ÿ',' ',
'¡','¢','£','¤','¥','¦','§','¨','©','ª','«',
'¬','­','®','¯','°','±','²','³','´','µ','¶',
'·','¸','¹','º','»','¼','½','¾','¿','À',
'Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê',
'Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô',
'Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ',
'ß','à','á','â','ã','ä','å','æ','ç','è',
'é','ê','ë','ì','í','î','ï','ð','ñ','ò',
'ó','ô','õ','ö','÷','ø','ù','ú','û','ü',
'ý','þ','ÿ');
var erg = "";
for(var i = 0; i < wort.length; i++)
{
z = true;
ch= wort.charAt(i);
x = wort.charCodeAt(i);
xy="&#"+x+";";
if((x>31)&&(x<128))erg+=ch;
else if((x>127)&&(x<256))erg +=soll[x-128];
else erg+=xy;
}
return(erg);
}
P.S. auf meiner Homepage:blitzauge.com
gibt es eine, noch versteckte Hilfe unter:Fremde Zeichensätze um nach der Beschreibung dafür zu suchen benutzt die Volltextsuche nach "fremde zeichen" auf blitzauge.com
hoffetlich klappt's
Opa Horst