Zurück   Flashforum > Alternative Technologien > JavaScript & jQuery

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 30-03-2009, 12:25   #1 (permalink)
n.a.
 
Registriert seit: Aug 2005
Ort: Berlin
Beiträge: 146
AJAX: Problem mit Sonderzeichen aus der Datei auf dem Server

Hallo allerseits!

Man hat mal wieder ein kleines Problem mit Sonderzeichen...

Folgende Funktionalität möchte ich umsetzen:
Beim Auswählen einer Select-Option wird eine Anfrage an den Server geschickt, ein PHP-Skript ausgeführt und anschließend das Ergebnis in die Seite eingefügt. Ein simples AJAX-Beispiel.

Hier ist mein Code:

HTML
HTML-Code:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
	<head>
		<title>JavaScript</title>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<link rel="stylesheet" type="text/css" href="laender.css" />
		<script type="text/javascript" src="laender.js"></script>
	</head>
	<body>
	<form name="f" method="GET" action="">
		<select name="bundesland" size="1" onclick="sndReq()">
			<option>Baden-Württemberg</option>
			<option>Bayern</option>
			<option>Berlin</option>
			<option>Brandenburg</option>
			<option>Bremen</option>
			<option>Hamburg</option>
			<option>Hessen</option>
			<option>Mecklenburg - Vorpommern</option>
			<option>Niedersachsen</option>
			<option>Nordrhein-Westfalen</option>
			<option>Rheinland-Pfalz</option>
			<option>Saarland</option>
			<option>Sachsen</option>
			<option>Sachsen-Anhalt</option>
			<option>Schleswig-Holstein</option>
			<option>Thüringen</option>
		</select>
	</form>
	äöüß-HTML
	<div id="hs"><div>
	</body>
</html>
JS
HTML-Code:
var resObject;

if(navigator.appName.search("Microsoft") > -1) {
	resObject = new ActiveXObject("MSXML2.XMLHTTP");
} else {
	resObject = new XMLHttpRequest();
}

function sndReq() {
	for (i =1; i <= 16; i++) {
		if(this.document.f.bundesland.options[i - 1].selected) {
			resObject.open('get', 'laender.php?wo=' + i, true);
			resObject.onreadystatechange = handleResponse;
			resObject.send(null);
			break;
		}
	}
}

function handleResponse() {
	if(resObject.readyState == 4) {
		document.getElementById("hs").innerHTML = "äöüß-JS <br />" + resObject.responseText;
	}
}
PHP
PHP-Code:
<?php
    
echo "äöüß-PHP <br />\n";
    switch(
$_REQUEST['wo']) {
        case 
1:
            echo 
"Stuttgart";
            break;
        case 
2:
            echo 
"München";
            break;
        case 
3:
            echo 
"Berlin";
            break;
        case 
4:
            echo 
"Potsdam";
            break;
        case 
5:
            echo 
"Bremen";
            break;
        case 
6:
            echo 
"Hamburg";
            break;
        case 
7:
            echo 
"Wiesbaden";
            break;
        case 
8:
            echo 
"Schwerin";
            break;
        case 
9:
            echo 
"Hannover";
            break;
        case 
10:
            echo 
"Düsseldorf";
            break;
        case 
11:
            echo 
"Mainz";
            break;
        case 
12:
            echo 
"Saarbrücken";
            break;
        case 
13:
            echo 
"Dresden";
            break;
        case 
14:
            echo 
"Magdeburg";
            break;
        case 
15:
            echo 
"Kiel";
            break;
        case 
16:
            echo 
"Erfurt";
            break;
    }
?>
Das Problem ist dabei, dass die Sonderzeichen aus der PHP-Datei, die vom Server kommen nicht korrekt dargestellt werden.

Kann mir jemand sagen, woran das liegt und was man dagegen tun kann?

Danke
automatix ist offline   Mit Zitat antworten
Alt 30-03-2009, 12:32   #2 (permalink)
·
 
Benutzerbild von pilzebub
 
Registriert seit: Oct 2003
Ort: ··
Beiträge: 722
nimm mal für die Ausgabe(php): http://de.php.net/htmlentities

Geändert von pilzebub (30-03-2009 um 12:33 Uhr) Grund: verlesen
pilzebub ist offline   Mit Zitat antworten
Alt 30-03-2009, 13:15   #3 (permalink)
n.a.
 
Registriert seit: Aug 2005
Ort: Berlin
Beiträge: 146
Zitat:
Zitat von pilzebub Beitrag anzeigen
nimm mal für die Ausgabe(php): http://de.php.net/htmlentities
Das geht, aber dann hab ich ein Progblem mit HTML-Tags...

Warum tritt das Problem überhaupt auf?
automatix ist offline   Mit Zitat antworten
Alt 30-03-2009, 13:30   #4 (permalink)
·
 
Benutzerbild von pilzebub
 
Registriert seit: Oct 2003
Ort: ··
Beiträge: 722
Umlaute, Sonderzeichen sind mir irgendwie immer ein grauen
(auch in Verwendung mit utf-8)...

Ich check das selbst noch nicht so richtig: http://de.wikipedia.org/wiki/Umlaut#Unicode
pilzebub ist offline   Mit Zitat antworten
Alt 30-03-2009, 13:52   #5 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Das ist eigentlich nicht kompliziert, wenn alle Files, die im Spiel sind, UTF-8-kodiert sind. Also wirklich also solches abgespeichert sind und nicht nur im Head/Prolog oder sonstwo UTF-8 als Charset angegeben haben.

Und - htmlEntities() führt in einer UTF-8-Umgebung zu garnix Gutem, pilzebub...

@automatix: für die Verwendung anstelle eines solchen switch/case-Wahnsinns wurden übrigens eigentlich mal Arrays erfunden...
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)

Geändert von sonar (30-03-2009 um 13:55 Uhr)
sonar ist offline   Mit Zitat antworten
Alt 30-03-2009, 18:55   #6 (permalink)
Inventar
 
Benutzerbild von Nightflyer
 
Registriert seit: Jul 2002
Beiträge: 6.882
PHP-Code:
$CONTENT str_replace( array( 'ä''ö''ü''Ä''Ö''Ü''ß' ), array( '&auml;''&ouml;''&uuml;''&Auml;''&Ouml;''&Uuml;''&szlig;' ), $CONTENT ); 
__________________
(\__/)
(='.'=)
(")_(")
Nightflyer ist offline   Mit Zitat antworten
Alt 30-03-2009, 19:56   #7 (permalink)
n.a.
 
Registriert seit: Aug 2005
Ort: Berlin
Beiträge: 146
Zitat:
Zitat von sonar Beitrag anzeigen
@automatix: für die Verwendung anstelle eines solchen switch/case-Wahnsinns wurden übrigens eigentlich mal Arrays erfunden...
Weiß ich, weiß ich. Der Code (nur leicht verändert) stammt aus dem Video Training "AJAX Grundlagen" von Ralph Steyer.

Zitat:
Zitat von sonar Beitrag anzeigen
Das ist eigentlich nicht kompliziert, wenn alle Files, die im Spiel sind, UTF-8-kodiert sind. Also wirklich also solches abgespeichert sind und nicht nur im Head/Prolog oder sonstwo UTF-8 als Charset angegeben haben.
Ich arbeite mit PSPad und er speichert standardmäßig im UTF-8 Format.

@all

Danke für Eure Lösungsvorschläge. Und nichtsdestotrotz: Warum gibt's das Problem eigentlich, warum werden Zeichen falsch übertragen/dargestellt?

Geändert von automatix (30-03-2009 um 19:58 Uhr)
automatix ist offline   Mit Zitat antworten
Alt 30-03-2009, 22:10   #8 (permalink)
Zero to Hero
 
Registriert seit: Apr 2007
Beiträge: 871
Da muss nur mal der header deines htmls als iso kodiert ankommen, schon interpretiert der browser das ganz anders.

genauso ein schmarn wenn du eine iso kodierte datenbank hast ... und die auf einmal utf8 können soll... "pain in the a...." :-)
__________________
Ein Tag an dem du nicht gelacht hast ist ein verschwendeter Tag.
Never Stop!

Mike
ingrimm ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele