php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.03.2008, 12:09  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard UTF-8 nur mit SET NAMES?

Hallo,

ich bin gerade etwas irritiert. Ich hatte bis eben ein paar Probleme mit dem Zeichensatz meiner Datenbank. Beim Auslesen aus der DB werden die Umlaute einfach nicht korrekt dargestellt.

Punkte die ich beachtet habe:

- Datei, die die Daten ausließt als UTF-8 (ohne BOM) gespeichert.
- PHP header für UTF-8 kodierung vorhanden (der Browser stellt auch auf UTF-8, habe ich kontrolliert)
- sämtliche Tabellen, Spalten und die Datenbank selbst sind im utf8-general-ci gespeichert

Wenn ich normal Sonderzeichen in die PHP Datei schreibe, werden diese auch korrekt angezeigt. Die Daten in der Datenbank werden im phpMyAdmin auch korrekt angezeigt.

Das Problem habe ich soweit gelöst, wenn ich direkt nach definieren der SQL Connection folgende Zeile schreibe:

PHP-Code:
mysql_query("SET NAMES 'utf8'"$sql_connection); 
Jetzt frage ich mich aber, wieso ich diese Zeile brauche? Normal ist doch alles korrekt eingestellt. Ich hoffe ihr könnt mir die Frage beantworten.


mfg
Link
GSJLink ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.03.2008, 15:43  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo GSJLink,

ich nehme an, dass die MySQL-Bibliothek auf ISO-8859-1 oder dergleichen eingestellt ist. Eine andere Möglichkeit ist der Zeichensatz des Betriebssystems...
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 01.03.2008, 15:49  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard

Also ich hab das ganze auf nem lokalen xampp unter Windows laufen

Was meinst du genau mit MySQL Bibliothek?


mfg
Link
__________________
"Ein Script ist nur dann gut, wenn es unabhängig von der verwendeten Plattform funktioniert"
GSJLink ist offline   Mit Zitat antworten
Alt 01.03.2008, 16:46  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo GSJLink,

in der Regel wird der Zeichensatz des Betriebssystems in der MySQL-Client-Bibliothek (auf Windows php_mysql.dll) übernommen. Ist in der php.ini nichts anderes für PHP eingestellt, so kann es durchaus sein, dass die Verbindung unter Berücksichtigung des Zeichensatzes des OS erstellt wird. Konfiguriere dein PHP einfach mit UTF-8, dann sollte das klappen.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 02.03.2008, 11:31  
Erfahrener Benutzer
 
Registriert seit: 27.08.2003
Beiträge: 449
PHP-Kenntnisse:
Fortgeschritten
GSJLink
Standard

Jop ich habs gefunden. In der php.ini war scheinbar nicht. Aber wenn ich phpMyAdmin aufrufe, kann ich gleich auf der Home Seite einstellen, welche Zeichencodierung die mySQL Verbindungen generell haben sollen. Ich habs umgestellt und seit dem funktionierts

mfg
Link
__________________
"Ein Script ist nur dann gut, wenn es unabhängig von der verwendeten Plattform funktioniert"
GSJLink 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
Problem mit utf8/latin1 freq.9 Datenbanken 6 14.11.2007 21:41
Verständnisprobleme bei Utf8 > Character Set > Collate erna Datenbanken 4 20.03.2007 14:08
mit PHP ZIP erstellen PHP-Fortgeschrittene 11 12.10.2004 03:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
set names utf8, set names \'utf8\', set names, php set names, set names \'utf8\';, php set names utf8, set names utf-8, set names php, set names utf, set names utf8;, set names \'utf8\' php, set names \'utf8, set names utf8 php, php set names \'utf8\', php set names \'utf8\';, \set names \'utf8\'\, set name utf8, \set names utf8\, set names \'utf-8\', php set names utf

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:20 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.