Umlaute beim Dump erstellung FALSCH

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

Umlaute beim Dump erstellung FALSCH

Postby rhservice » 01. December 2005 22:50

Hallo, ich habe seit ich die neuste Xampp Version einsetze folgendes Problem.
Wenn ich eine Datenbank Exportiere werden aus den Umlauten wie Ü Ä ODER Ö komische Zeichen! Wie kann ich das verhindern!

vielen Dank im Voraus

rhservice
rhservice
 
Posts: 14
Joined: 30. November 2005 17:23

Postby KingCrunch » 02. December 2005 06:43

Was für komische Zeichen? ä -> "&auuml;" kommt von html, irgendwas anderes wahrscheinlich vom Zeichensatz.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby rhservice » 02. December 2005 09:31

hallo.

das Ü zum Beispiel so: Ãœ und andere ähnlich. Auch das ß wird anders angezeigt!
rhservice
 
Posts: 14
Joined: 30. November 2005 17:23

Postby rhservice » 02. December 2005 09:34

hier ein beispiel link (man achte auf die Überschrift):
http://www.rh-service-shop.de/index.php ... chutz.html
rhservice
 
Posts: 14
Joined: 30. November 2005 17:23

Re: Umlaute beim Dump erstellung FALSCH

Postby Bandicut » 02. December 2005 11:19

rhservice wrote:Hallo, ich habe seit ich die neuste Xampp Version einsetze folgendes Problem.
Wenn ich eine Datenbank Exportiere werden aus den Umlauten wie Ü Ä ODER Ö komische Zeichen! Wie kann ich das verhindern!

vielen Dank im Voraus

rhservice


Als ich auf die Version XAMPP 1.4.16 umgestellt habe hatte ich das gleich Problem. Leider habe ich bis jetzt auch keine Lösung für dieses Problem. Bevor ich jetzt auf die aller neueste Version umstelle, würde ich auch ganz gerne wissen wollen was ich beim Dump der Datenbank zu beachten habe.

Gruss Bandicut
Bandicut
 
Posts: 1
Joined: 02. December 2005 11:10

Postby KingCrunch » 02. December 2005 13:34

Im Firefox kann man ja so schön onTheFly den Zeichensatz wechseln und da hab ich das einfach mal gemacht. Das Problem ist nun folgendes: Die Seite ist in UTF8 codiert. Die Seite schickt aber keine Information zum Zeichensatz mit, also nimmt der Browser den aktuelle System-Standard-Satz, meist ISO-8859-1 oder ISO-8859-15. In UTF8 codiert zeigt er die Umlaute und Sonderzeichen korrekt an.

Gut, was macht man dagegen? Da kannste von mehreren Seiten aus gehen:
1. Du gibst den Zeichensatz explizit in der HTML-Ausgabe mit an. Bei mir lief das dann einfach, indem ich folgendes in den Head der HTML mit reingepackt habe:
Code: Select all
<meta http-equiv="content-type" content="text/html; charset=utf-8">

Nun weiß der Browser, was Sache ist, und experimentiert nicht.
2. Die eigentlich schönere Variante: Du escapest die Umlaute/Sonderzeichen bzw lässt sie escapen. Das kannst das per Hand umschreiben, aber einfacher gehts natürlich, wenn man es machen lässt:
Code: Select all
string htmlentities ( string string [, int quote_style [, string charset]] )

Diese Funktion aus PHP nimmt nen String und ersetzt jedes Sonderzeichen durch sein HTML-Entity (ä -> &auml; , ...). Damit sollte jeder Browser eigentlich wissen, welches Zeichen gemeint ist, wenn ich mich nicht irre unabhängig vom Zeichensatz. Damit bleibt die Zeichensatzkollision allerdings bestehen, sie kommt aber nicht mehr zur Ausprägung.
3. Du änderst den Zeichensatz der HTML, die du schickst, auf nen normal-typisch-deutschen Zeichensatz, den jeder Browser von sich aus zumindest verstehen wird, zB ISO-8859-1. Wie das allerdings von sich ging, hab ich grad nicht zur Hand. Eventuell mal die PHP-Manual konsultieren.

Ich würd dann aber doch eher 2. und 1. empfehlen, das is dann die sauberste Methode. Dann haste auch international nicht mehr großartig Kompatibilitätsprobleme ;)
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby rhservice » 02. December 2005 13:58

wie kann ich das denn ändern? soll ich die datenbank ändern oder bein erstellen der dump was beachten????
rhservice
 
Posts: 14
Joined: 30. November 2005 17:23

Postby KingCrunch » 02. December 2005 14:58

Für den ersten Teil musst du den Inhalt ändern. Dort trägst du in den head jeweils die Zeile ein, die sagt, welcher Zeichensatz eigentlich Sache ist. Wenn du Templates verwendest, dürfte das auch sehr schnell gehn.
Den zweiten Teil verarbeitest du einfach kurz vor der Ausgabe
Code: Select all
$ausgabe = htmlentities ($ausgabe);
echo $ausgabe;

Oder kurz
Code: Select all
echo (htmlentities($ausgabe));

Den dritten Teil. Na, ja, den hab ich immer noch nicht zur Hand :oops:
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby rhservice » 02. December 2005 15:17

das prioblem ist ja folgendes:

ich importiere den inhalt per csv. Local unter Xampp soweit so gut. alles wird bestens angezeigt. sobald ich aber einen dump von der db erstelle kommt das problem! kann ich in der db einstellungen vornehmen?
rhservice
 
Posts: 14
Joined: 30. November 2005 17:23

Postby KingCrunch » 02. December 2005 23:34

Wenn du es über den Browser ausgibst, kannst du doch auch direkt vor der Ausgabe die Sonderzeichen escapen ... ?!?
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby rhservice » 02. December 2005 23:47

ich habe leider null ahnung davon!! kannst du mir genau erklären was du meinst?
rhservice
 
Posts: 14
Joined: 30. November 2005 17:23

Postby KingCrunch » 03. December 2005 00:21

Wenn du die Ausgabe aus PHP heraus realisiert, dann kannst du einfach, wenn $ausgabe das Ding is, was raus soll
Code: Select all
$ausgabe = htmlentities($ausgabe);

direkt vor der eigentlich Ausgabe packen.

Kannst ja auch mal den Teil posten, wo die Ausgabe steht.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 48 guests