php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.11.2011, 16:04  
Neuer Benutzer
 
Registriert seit: 29.10.2011
Beiträge: 28
PHP-Kenntnisse:
Anfänger
BigMcDonalds befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] strtr - wandelt Umlaute nicht um

Hallo,

ich habe ein Problem, dass ich irgendwie nicht gelöst bekomme. Vielleicht übersehe ich den offensichtlichen Fehler auch einfach.

Ich will mit strtr($wort, $ersetzen) die deutschen Sonderzeichen korrekt aus einer Datenbank heraus ausgeben.

PHP-Code:
<?php $ergebnis_test mysql_query("SELECT * FROM test ");
while(
$row_test mysql_fetch_object($ergebnis_test)) {
 echo 
'<tr>';
 echo 
$td_hg_align_auf.htmlspecialchars($row_test->code).$td_zu ;
 
$ersetze_test = array('ä' => '&auml;''ö' => '&ouml;''ü' => '&uuml;''ß' => '&szlig;'); //Ersetze '??' in '??'
 
$row_ersetzt strtr(htmlspecialchars($row_test->beschreibung), $ersetze_test);
 echo 
$td_hg_auf.$row_ersetzt.$td_zu ;
 echo 
'</tr>'
}
?>
Soweit klar. Die in der Datenbank vorhandenen ü, ä, ö und ß´s sollen umgewandelt werden in HTML-taugliche Zeichenfolgen.
Das hat bei einer meiner Ausgaben auch ohne Probleme funktioniert.
Nun wollte ich das eben für die aktuelle Ausgabe verwenden. Es gibt keine Fehlermeldung, aber es wird auch nichts ersetzt.
Weiterhin sind alle deutschen Sonderzeichen mit diesem Symbol ausgegeben: �

Wo könnte das Problem sein.

Gruß Chris
BigMcDonalds ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.11.2011, 16:09  
Erfahrener Benutzer
 
Registriert seit: 25.01.2009
Beiträge: 1.027
PHP-Kenntnisse:
Fortgeschritten
Capfly befindet sich auf einem aufstrebenden Ast
Capfly eine Nachricht über ICQ schicken Capfly eine Nachricht über MSN schicken
Standard

str_replace() ?

Liegt übrigens an der falschen Zeichencodierung
__________________
MfG
~Capfly
Jetzt NEU! Cpix & Wbits Katahlan.de - Das Browsergame
Capfly ist offline   Mit Zitat antworten
Alt 19.11.2011, 16:27  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von BigMcDonalds Beitrag anzeigen
Ich will mit strtr($wort, $ersetzen) die deutschen Sonderzeichen korrekt aus einer Datenbank heraus ausgeben.
Das ist ziemlicher Unfug.

Verwende gleich eine Zeichenkodierung, die solche „Sonderzeichen“ problemlos abbilden kann – bspw. UTF-8.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 19.11.2011, 16:29  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.628
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Die Zeichenkodierung ist fehlerhaft.

Nicht nur generell, da die Umlaute falsch dargestellt werden, sondern auch bei deinem recht stümperhaftem Workaround.

Beispiel: Die Daten aus deiner Datenbank sind UTF-8, dein Script ist in ISO abgespeichert. Somit ist dein "ä" in deinem Array in ISO-xxxx codiert, das "ä" aus der Datenbank ist aber ein 2 Byte UTF-8 womit strtr() keine Übereinstimmung finden kann.

Also lass diesen Ersatzmist und stelle alles auf einen einheitlichen Zeichensatz um. Dann hast du generell keine Probleme mehr.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 19.11.2011, 16:32  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Ich hab in einer UTF-8-Tabelle zugleich deutsche Umlaute wie auch polnische Sonderzeichen. Das wird alles ordentlich gespeichert. Nimm dir etwas Zeit und lies/arbeite das hier durch:


Die 5 goldenen Regeln für UTF-8 in PHP/MySQL und HTML:
http://www.php.de/datenbanken/55699-...tml#post430223 (Umlaute in MySQL Datenbank)

Der ultimative Megakick der Superlative
http://www.php.de/adventskalender-20...perlative.html (27: Der ultimative Megakick der Superlative)
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline   Mit Zitat antworten
Alt 19.11.2011, 21:14  
Neuer Benutzer
 
Registriert seit: 29.10.2011
Beiträge: 28
PHP-Kenntnisse:
Anfänger
BigMcDonalds befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Wolla Beitrag anzeigen
Ich hab in einer UTF-8-Tabelle zugleich deutsche Umlaute wie auch polnische Sonderzeichen. Das wird alles ordentlich gespeichert.
In der Datenbank selbst ist ja auch alles korrekt angezeigt und auch alles im UTF-8 Format.
Ich werde es mir gleich mal alles durch lesen. Danke auf jeden Fall schonmal. Hatte schon vemrutet, dass es damit zu tun hat
BigMcDonalds ist offline   Mit Zitat antworten
Alt 20.11.2011, 13:15  
Neuer Benutzer
 
Registriert seit: 29.10.2011
Beiträge: 28
PHP-Kenntnisse:
Anfänger
BigMcDonalds befindet sich auf einem aufstrebenden Ast
Standard

Danke, habe den Fehler gefunden. Mit dem Querry und dem Charset funktioniert es jetzt (ohne strtr). Alles Andere war ja schon im UTF-8 Format

Mit besten grüßen,

Chris
BigMcDonalds ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Umlaute (&amp;auml;) umwandeln chr1s-eg PHP Einsteiger 10 24.01.2011 12:41
[Erledigt] PHPMailer und Umlaute Sirius PHP Tipps 2010 14 30.03.2010 15:14
Umlaute und MySQL4.1 Datenbanken 2 15.11.2009 15:28
[Erledigt] Kann keine Umlaute im mysql client eingeben Oger Datenbanken 9 02.04.2009 11:54
MySQL Konsole und Umlaute unter Windows [LÖSUNG] f4ckm5 Datenbanken 8 30.03.2009 22:10
[Erledigt] Umlaute und Sonderzeichen decodieren Sermon PHP Tipps 2009 9 27.03.2009 08:18
Umlaute und str_replace MatzeMuc86 PHP Tipps 2008 20 22.10.2008 20:41
Umlaute in Datenbank zerschossen. Wie reparieren? MatzeMuc86 Datenbanken 1 14.09.2008 17:48
Umlaute in Datenbank Eldra PHP Tipps 2008 3 14.05.2008 07:11
UTF8 Dump erzeugt nach import in UTF8 kod DB falsche Umlaute Carino Datenbanken 18 07.05.2007 23:49
Umlaute bei Linux flual2000 PHP Tipps 2006 10 28.04.2006 13:12
[Erledigt] Keine Umlaute beim MediaWiki im Internet Explorer PHP Tipps 2006 1 15.02.2006 18:50
Umlaute... JK PHP-Fortgeschrittene 7 07.12.2005 20:55
Umlaute in Dateien per CLI in HTML-Entities umwandeln PHP-Fortgeschrittene 5 19.07.2005 09:06
[Erledigt] Umlaute werden falsch maskiert PHP Tipps 2004-2 4 11.11.2004 13:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
strtr wandelt umlaute nicht, strtr utf8, php setzt sonderzeichen nicht um, php zeichen ersetzen mit strtr funktioniert nicht, strtr funktioniert bei umlauten nicht, strtr utf-8, strtr funktioniert nicht, php str_replace wandelt umlaute nicht um, php wandelt sonderlaute nicht um, strtr php umlaute funktioniert nicht, strtr sonderzeichen, wort aus datenbank falsche umlaute, ersetzen strtr geht nicht

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum