Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Umlaute in DB

Frage Entwicklung PHP

Mitglied: yannick-server

yannick-server (Level 1) - Jetzt verbinden

23.10.2010, aktualisiert 17.11.2010, 3423 Aufrufe, 6 Kommentare

Hi!
Habe ein Problem bein Eintragen und Ausgeben von Daten aus meiner MySQL Datenbank.
Habe schon hier und in Google gesucht und folgende Lösung gefunden.

Beim Verbinden der Datenbank, führe ich diesen Query aus:
01.
mysql_query("SET NAMES 'utf8'");
Wenn ich nun die Daten eingebe funktioniert es wunderbar, in der Datenbank steht äöüß.
Gebe ich die Daten aber nun aus erhalte ich öüä�.

Kollation der Tabelle und des Feldes sind 'latin1_general_ci'.
Bin leider zu keiner Lösung gekommen.
Schonmal vielen Dank für eure Antworten
gruß Yannick

EDIT:
Wenn ich den Text normal ausgebe ohne htmlentites werden die Sonderzeichen richtig dargestellt.
Mitglied: godlie
23.10.2010 um 12:28 Uhr
Hallo eine einfache Frage sieht

latin1_general_ci gleich aus wie utf8 ?

Entweder alles utf8 oder alles latin entscheide dich.
Bitte warten ..
Mitglied: yannick-server
23.10.2010 um 12:46 Uhr
Was ist denn geeigneter?
Wenn ich mich für latin entscheiden, muss ich dann auch den HTML:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />hier ändern?

Wenn ich den Text normal ausgebe ohne htmlentites werden die Sonderzeichen richtig dargestellt.
Bitte warten ..
Mitglied: godlie
23.10.2010 um 12:48 Uhr
Also wenn du deine Daten per utf-8 aus / eingibst und das in ein latin1 feld speicherst dann darf es dich nicht wundern.

ich würde die kollation auf utf_general_ci oder so stellen, insofern du nicht schon daten drinnen hast, sollte dies der fall sein
musst du die daten ggf. umwandeln.
Bitte warten ..
Mitglied: yannick-server
23.10.2010 um 12:56 Uhr
Danke.
Ich hab jetzt mal die DB auf latin1 gestellt also mysql_query("SET NAMES 'latin1'");
Jetzt funktioniert die Ausgabe der vorhandenen Einträge, wenn ich aber neue Einträge erstelle werden diese als öüäÃ�
in der Datenbank gespeichert und auch wieder ausgegeben.
Bitte warten ..
Mitglied: yannick-server
23.10.2010 um 13:29 Uhr
Jetzt klapps:

Beim Verbinden mit der Datenbank:
mysql_query("SET NAMES 'latin1'");
mysql_query("SET CHARACTER SET 'latin1'");

Vor dem Eintragen
mysql_query("SET NAMES 'utf-8'");
danach wieder umstellen auf:
mysql_query("SET NAMES 'latin1'");

HTML Contynt-Type steht auf: iso-8859-1

Warum verstehe ich noch nciht, aber es klappt immerhin.
Ich wäre Froh, wenn jemand eine Erklärung dafür hätte.

Danke nochmal an godlie, du hast mir sehr geholfen

mfg
Yannick
Bitte warten ..
Mitglied: dog
24.10.2010 um 19:08 Uhr
mysql_query("SET NAMES 'utf8'");

Und wenn du dir die PHP-Doku durchliest wirst du ganz schnell sehen, dass dort von genau diesem Query explizit abgeraten wird.
Alles was der macht, ist den MySQL-Client in einen undefinierten Status zu setzen, wo alles passieren kann.

http://de3.php.net/mysql_set_charset

Und man sollte schon durch die Bank weg den selben Zeichensatz benutzen, auch wenn "UTF-8 in ISO-8859-1" ein mittlerweile so verbreiteter Fehler ist, dass ihn manche Clients korrigieren können.

Noch was: substr und einige andere Funktionen sind nicht für Multibyte-Zeichensätze wie UTF-8 geeignet!

Und jetzt bitte mal die Standardlektüre zum Thema lesen: http://www.joelonsoftware.com/articles/Unicode.html
Bitte warten ..
Ähnliche Inhalte
Sicherheits-Tools
Sicherheitstest von Passwörtern für ganze DB-Tabellen (1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Batch & Shell
Batch - Umlaute usw (4)

Frage von Xaero1982 zum Thema Batch & Shell ...

VB for Applications
gelöst DB-Abfrage in Excel mit Kriterien aus Excel (11)

Frage von JensDND zum Thema VB for Applications ...

Verschlüsselung & Zertifikate
Zugriff auf mySQL-DB mit ODBC und SSL (2)

Frage von Titan24 zum Thema Verschlüsselung & Zertifikate ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(8)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte