Sonderzeichen mit AJAX (Zeichenkodierung)
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgeben
code
darstellen
datei
frage
idee
info
inhalt
jemand
klammern
moment
ordern
problem
schrift
sonderzeichen
string
tag
tausche
umsteigen
windows
-
Ich habe ein tag/problem">Problem:
Ich tausche via AJAX in einem div meinen Inhalt aus. Im Moment ist es lediglich Schrift. Mein Problem ist, dass die String, welche aus meiner php Datei kommen keine Sonderzeichen darstellen können ( ö,ü usw.) sondern stattdessen irgendwelche komischen errorzeichen ausgeben. Wär super wenn jemand ne Idee hat.
mfG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ö =>
Ö
ö =>ö
Ä =>Ä
ä =>ä
Ü =>Ü
ü =>ü
EInfach ersetzen :) -
Wenns aus ner PHP gelesen wird, geht das leichter:
$deinevariable = htmlentities($deinevariable); echo $deinevariable;
-
else if ($_REQUEST['inhalt'] == home) {
echo "Hier steht Inhalt";
}
wo müsste hier "htmlentities" rein? -
partycheck-berlin schrieb:
Ich habe ein Problem:
Ich tausche via AJAX in einem div meinen Inhalt aus. Im Moment ist es lediglich Schrift. Mein Problem ist, dass die String, welche aus meiner php Datei kommen keine Sonderzeichen darstellen können ( ö,ü usw.) sondern stattdessen irgendwelche komischen errorzeichen ausgeben. Wär super wenn jemand ne Idee hat.
mfG
Das ist 100% ein Problem mit dem Encoding. Ist auf deiner Seite explizit ein Character Encoding angegeben? Sind die Seiten, die du über ajax anziehst auch im selben Encoding?
Ich würde dir empfehlen, alles in UTF-8 zu kodieren und die Dateien ohne BOM abzulegen. So kann nichts schiefgehen und UTF-8 hat in ein paar Jahren wahrscheinlich eh alle ISO-Encodings abgelöst. -
partycheck-berlin schrieb:
else if ($_REQUEST['inhalt'] == home) {
echo "Hier steht Inhalt";
}
wo müsste hier "htmlentities" rein?
else if ($_REQUEST['inhalt'] == home) { echo(htmlentities("Hier steht Inhalt")); }
LG cookies
Beitrag zuletzt geändert: 28.10.2009 21:46:50 von cookies -
So, ich seh schon ich muss da anders ran^^. Für deine Idee census reicht mein Wissen leider nicht. Cookies danke, aber jetzt hab ich das problem dass ich keine html tags mehr schrieben kann^^. Ich werde ma schaun ob ich das ganze nicht einfach mit ner txt datei machen kann. Vielen Dank nochmal
mfG
p.s.: So ich habe das ganze nun mit verschiedenen txt Dateien gemacht, welches für meine Zwecke vollkommen ausreicht da sich meine Inhalten (noch) nicht verändern sollen durch irgendwelche variablen usw. NUR ich habe wieder Sonderzeichen Error^^. Wie würden denn die Ideee mit UTF-8 funktionieren? BZW. ...nein ->character encoding<- was ist das ?
p.s.again -.-: charset=utf-8 steht halt im html in der meta info ansonsten wüsste ich nicht was du meinst
Beitrag zuletzt geändert: 28.10.2009 22:39:44 von partycheck-berlin -
partycheck-berlin schrieb:
p.s.again -.-: charset=utf-8 steht halt im html in der meta info ansonsten wüsste ich nicht was du meinst
Gut. Damit sagst du dem Browser "die Zeichen sind UTF-8 kodiert". Wenn du allerdings deine Seite z.B. als ANSI gespeichert hast, dann werden logischerweise die Sonderzeichen falsch dargestellt. Bei fast allen Editoren (und bei notepad++ auf jedem Fall), kann man bei Textdateien auswählen, in welcher Kodierung sie gespeichert werden sollen. Die richtige Kodierung für dich wäre UTF-8 ohne BOM (Byte ORder Mark). Da du anscheinend unter Windows arbeitest, sind aber wahrscheinlich deine Dateien ISO-Windows kodiert.
Lad dir mal notepad++ runter und speichere alle Textdateien (html, php, js, etc) als UTF-8 ohne BOM ab. -
partycheck-berlin schrieb:
Super vielen vielen Dank :D ich habe die Dateien nun konvertiert und alles funktioniert wunderbar. :) eine Frage hätte ich dann aber doch noch: Wie kann ich einen String ausgeben welcher auch klammern und anführungszeichen besitzt? Oder sollte ich dann doch lieber auf eine txt Datei umsteigen?
Klammern innerhalb eines php-Strings machen keine Probleme. Anführungszeichen musst du bei Strings, die mit Anführungszeichen limitiert werden, escapen, also ein Backslash voranstellen.
$str = "Das ist ein \"String\" mit Anführungszeichen.";
Wenn du im HTML hingegen zum Beispiel spitze Klammern ausgeben musst, musst du auch named entities zurückgreifen:
<span>Der Tag <div> öffnet einen Div.</span>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage