PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

07-03-2005, 17:09
|
Rumo
Junior Member
|
|
Registriert seit: Jan 2005
Ort: Fürth/Bayern/Germany
Beiträge: 154
|
|
Umlaute in Codes umwandeln
Hallo
Ich habe bei meinem Server folgendes Problem:
Er stellt Umlaute immer als komische Zeichen dar.
Bei normalen HTML-Codes ist dies leicht zu umgehen mit solchen Codes wie z.B. ä für ä.
Bei meinem auf PHP programmierten Gästebuch funktioniert das nicht:
PHP-Code:
$text = str_replace ("ä", "ä", $text);
$text = str_replace ("Ä", "¨", $text);
$text = str_replace ("ö", "ö", $text);
$text = str_replace ("Ö", "Ö", $text);
$text = str_replace ("ü", "ü", $text);
$text = str_replace ("Ü", "Ü", $text);
$text = str_replace ("ß", "ß", $text);
hab ich in die Datei geschrieben, die das Gästebuch-Formular verarbeitet (wobei $text der vom besucher eingegebene Text ist).
Als ich das nächste mal die datei aufrief, standen in dem Code anstatt der umlaute wieder komische Zeichen.
Was kann ich da machen?
__________________
Es ist nicht deine Schuld, dass die Welt ist, wie sie ist,
Es wär nur deine Schuld, wenn sie so bleibt
|

07-03-2005, 17:14
|
wdsl
Newbie
|
|
Registriert seit: Mar 2005
Beiträge: 19
|
|
|

07-03-2005, 17:14
|
asp2php
Banned
|
|
Registriert seit: Feb 2004
Beiträge: 11.745
|
|
htmlentities ist das, was du suchst
|

07-03-2005, 17:21
|
Rumo
Junior Member
|
|
Registriert seit: Jan 2005
Ort: Fürth/Bayern/Germany
Beiträge: 154
|
|
Funzt. Danke für die schnellen antworten
__________________
Es ist nicht deine Schuld, dass die Welt ist, wie sie ist,
Es wär nur deine Schuld, wenn sie so bleibt
|

22-03-2005, 15:40
|
Armadi
Newbie
|
|
Registriert seit: Aug 2004
Beiträge: 37
|
|
Hallo,
Ich habe auch das Problem mit falscher Darstellung der deutschen Umlaute in eMails.
Ich lege einen mehrzeiligen Text in einer Variablen ab. In diesem Text sind auch Umlaute enthalten. Wenn ich die Umlaute im Text auschreibe, wie man es schreibt, dann werden die Umlaute beim Empfänger in wirres Zeichen umgewandelt.
Wenn ich aber die Umlaute in HTML-Codes schreibe , dann erscheint genau diesen Code im Text beim Empfänger.
Nun habe ich durch diesen Beitrag gehofft, die Lösung in der function 'htmlentities()' gefunden zu haben, leider war es nicht so.
Die 'htmlentities()' macht nicht dsa was sie machen sollte, oder das was behauptet wird, zu machen.
Mein Besipie:
PHP-Code:
<?php
//Mailversand
$empfaenger="empfaenger@gmx.de";
$betreff="Umlaute Darstellen";
$absender="absender@gmx.de";
$nachricht1="Die Umlaute ä - Ä, ö - Ö, ü - Ü und das ß werden übermittelt";
$nachricht2=htmlentities($nachricht1)
@mail($empfaenger,$betreff,$nachricht2,$absender);
//ENDE
?>
Nun wird der Text beim Empänger so angezeigt:
PHP-Code:
Die Umlaute ä - Ä, ö - Ö, ü - Ü und das ß werden übermittelt.
anstatt, dass sie als Umlaute angezeigt werden.
Bitte hilft mir vielleicht jemand und sagt mir eine plausible Lösung?
Ich will keine Diskussion über Theorie und technisches Detail, sondern einfach eine Funktion oder eine Weg, wie man die Umlaute als Umlaute darstellt beim Empfänger eines eMails.
Danke an alle
|

22-03-2005, 15:43
|
penizillin
PHP Guru
|
|
Registriert seit: Feb 2004
Beiträge: 10.166
|
|
woher weiß denn dein mail-client, dass es eine html- und keine plaintext-nachricht ist?
stichwort header?
|

22-03-2005, 16:25
|
pixelpope
Newbie
|
|
Registriert seit: Mar 2005
Beiträge: 1
|
|
ich würde sagen, das hört sich beides nach problemen mit der zeichencodierung an.
htmlentities braucht man garnicht, wenn man auf der seite mit dem gästebuchformular den charset ordentlich angibt, z.b.
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> oder auch UTF-8
und dann natürlich auch auf der seite, auf der die einträge angezeigt werden, ansonsten sucht sich der browser des users einen aus, und wenn der nicht übereinstimmt, gibt's halt buchstabensuppe.
zu der sache mit der mail:
htmlentities ist genau das falsche, da du wahrscheinlich keine html-mail verschicken willst.
ich würde aber auch ein problem beim charset vermuten.
überprüfe mal, in welchem set dein texteditor deine dateien abspeichert und dann, in welchem dein mailprogramm die mails anzeigt...
|

22-03-2005, 16:30
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 25.236
|
|
Zitat:
Original geschrieben von pixelpope
htmlentities braucht man garnicht, wenn man auf der seite mit dem gästebuchformular den charset ordentlich angibt, z.b.
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> oder auch UTF-8
und dann natürlich auch auf der seite, auf der die einträge angezeigt werden
|
natürlich "brauchst" du htmlentities oder zumindest htmlspecialchars (oder eine entsprechung), wenn du die daten auch in einer HTML-seite anzeigen willst. HTML-eigene sonderzeichen sind immer zu kodieren, wenn sie eben nicht ihre sonderzeichenbedeutung haben sollen.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

22-03-2005, 22:35
|
Armadi
Newbie
|
|
Registriert seit: Aug 2004
Beiträge: 37
|
|
Im Header-Bereich meiner Mailversand-Seite steht folgendes:
PHP-Code:
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Ich nehme an, das ist der richtige Charset.
Geändert von Armadi (22-03-2005 um 22:42 Uhr)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|