Umlaute umwandeln
Pete
- javascript
0 ulrich knoerzer0 Pete0 Pete0 pete0 Axel Richter0 Pete
Ich lese eine String aus einer Textarea ein und muss die Umlaute umwandeln:
result = result.replace(/ü/,"ü");
result = result.replace(/Ü/,"Ü");
result = result.replace(/ä/,"ä");
result = result.replace(/Ä/,"Ä");
result = result.replace(/ü/,"ö");
result = result.replace(/Ö/,"Ö");
result = result.replace(/ß/,"ß");
Allerdings passiert hier nichts.
Auch
result.indexOf('ü')
liefert als Ergebnis -1, obwohl der Buchstabe vorhanden war.
Kennt jemand das Problem und / oder die Lösung?
Pete
Hallo
mach mal hier einen
alert(result);
result = result.replace(/ü/,"ü");
result = result.replace(/Ü/,"Ü");
...
Ansonsten koennte es noch so klappen
result = result.replace(/\Ü/,"Ü");
Glaub sollte aber kein Sonderzeichen sein
Fehler werden auch keine angezeigt???
Uli
hallo
alert(result);
hatte ich bereits drin. Der Text ist da
result = result.replace(/ü/,"ü");
Ansonsten koennte es noch so klappen
result = result.replace(/\Ü/,"Ü");
Leider auch nicht.
Glaub sollte aber kein Sonderzeichen sein
Ich suche mal deswegen.
Fehler werden auch keine angezeigt???
Nein. Allerdings arbeite ich auch unter MacOSX mit IE, Firefox, Safari.
Pete
Ich habe jetzt folgendes gefunden und ausprobiert:
http://www.javatop.de/scripte3/umlautkonverter.htm
ist der Beweis das man die Umaute mittels JS umwandeln kann. Bei mir steht jetzt:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Eingabe</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<style type="text/css">
body { margin-left:20px; margin-right:20px; margin-top:10px; margin-bottom:0px }
</style>
<script type="text/javascript">
function add2Doc(headlineText) {
for(i = 1; i < 8; i++) {
if(i==1) { a="ä"; b="ä"; }
if(i==2) { a="ö"; b="ö"; }
if(i==3) { a="ü"; b="ü"; }
if(i==4) { a="Ü"; b="Ü"; }
if(i==5) { a="Ä"; b="Ä"; }
if(i==6) { a="Ö"; b="Ö"; }
if(i==7) { a="ß"; b="ß"; }
while (headlineText.indexOf(a)>-1) {
pos=headlineText.indexOf(a);
headlineText=(headlineText.substring(0, pos)+b+
headlineText.substring((pos + a.length), headlineText.length));
}
}
}
</script>
</head>
<body bgcolor="#ededed">
<form action="">
Überschrift:<br>
<textarea name="headline" cols="30" rows="5">test</textarea>
<br><br><br>
Eingaben <input type="button" name="fertig" value="Übernehmen" onClick="add2Doc(this.form.headline.value)">
</form>
</body>
</html>
Es geht trotzdem nicht. Im Dokument steht dann "üöäÃ" statt "üöäß".
Wo kann denn da noch der Fehler liegen?
Pete
Ich habe das ganze jetzt noch auf einem Win98-Rechner getestet. Hier geht der Code den ich gepostet habe, was ich nicht verstehe. Allerdings ist diese Datei in einem frame, aber das sollte ja wohl keinen Einfluss haben oder?
Pete
Hallo,
Es geht trotzdem nicht. Im Dokument steht dann "üöäÃ" statt "üöäß".
Wo kann denn da noch der Fehler liegen?
In Deiner Textarea stehen die Zeichen nicht ISO-8859-1, sondern UTF-8 codiert.
Vergleiche:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>UTF8</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<h1>üöäÃ</h1>
<div><script type="text/javascript">
<!--
var result = "üöäÃ"
alert(result);
alert("\u00fc");
result=result.replace(/\u00fc/, "ü");
result=result.replace(/\u00f6/, "ö");
alert(result);
document.writeln(result);
//-->
</script></div>
</body>
</html>
http://www.unicode.org/charts/
http://www.unicode.org/charts/PDF/U0080.pdf
viele Grüße
Axel
Du sprichst hier einen interessanten Punkt an. Denn obwohl ich die Iso drin hatte, wurden die Umlaute äöüß nicht korrekt dargestellt. Ich habe nie verstanden warum. Kannst du mir das eventuell sagen? Oder ist das bei mir mal wieder ein typisches MacOSX-Problem
Aber schon mal danke. Ich werde es heute Abend ausprobieren.
Pete