Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

Zeichencodierung UTF-8 trotzdem keine Umlaute

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
KarakTzorn
PostRank 1
PostRank 1
Beiträge: 10
Registriert: 22.07.2012, 08:14
Wohnort: Barnstorf

Beitrag von KarakTzorn » 22.07.2012, 09:03

Grüßt euch,

meine Website ist mit PHP und MySQL realisiert und ohne .htaccess welches Provider-mäßig auch nicht zugelassen wird. Ich habe mich dazu entschieden die Zeichencodierung UTF-8 zu verwenden.

folgende ist auch getätigt:

Im PHP Header

Code: Alles auswählen

header("Content-Type: text/html; charset=UTF-8");
Im HTML-Code

Code: Alles auswählen

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Im CSS

Code: Alles auswählen

@charset "utf-8";
Und in der MySQL-Datenbank ist auch "UTF-8 Unicode (utf8)" eingestellt. Ebenfalls ist bei der Kollation der MySQL-Verbindung und Tabellen "utf8_unicode_ci" ausgwählt.

Die PHPinfo zeigt ebenfalls unter:

Code: Alles auswählen

_SERVER&#91;"HTTP_ACCEPT_CHARSET"&#93;    UTF-8,*;q=0.5
Trotzdem zeigt die Website die Umlaute die von der Datenbank abgerufen werden nicht korrekt an. Umlaute direkt im HTML werden korrekt dargestellt. Nur bei abfrage aus der Datenbank wird die Ausgabe falsch dargestellt. Was kann jetzt noch falsch sein?[/code]
KarakTzorn schreibt GEMA-freie Rockmusik.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 22.07.2012, 10:05

Wichtig ist in jedem Fall, eine bearbeitete Seite im Editor auch unter UTF-8 ohne BOM zu speichern. Ein Dokument nur mit UTF-8 zu definieren bringt nichts, wenn es dann als ANSI-Dokument gespeichert wird, was sich auch auf ein Formular beziehen kann, welches bei der Speicherung auf die DB zugreift. Bei Formularen benutze ich deshalb auch ganz gern:

<form ... ... accept-charset="...">

Nun gut, da die Darstellung in der DB richtig ist, so wird es wohl mehr die Ausgabe bzw. die ausgebene Datei betreffen. Du könntest für die Ausgabe einmal utf8_encode() und einmal utf8_decode() benutzen, nur um zu testen, ob sich etwas ändert. Wenn keine von den beiden Funktionen eine vernünftige Ausgabe bewirkt, könnte es sich auch um eine Doppelkodierung handeln.

Der Titel ist nicht ganz ernst zu nehmen:

https://www.danisch.de/blog/2011/11/18/ ... rschlagen/


Ein älterer Thread: https://www.abakus-internet-marketing.d ... 08004.html

KarakTzorn
PostRank 1
PostRank 1
Beiträge: 10
Registriert: 22.07.2012, 08:14
Wohnort: Barnstorf

Beitrag von KarakTzorn » 22.07.2012, 10:42

Grüß Dich,

danke für die Hilfe. Ich habe das Problem jetzt gelöst. Folgender zusätzlicher Code nach dem aufbau der Datenbankverbindung zeigt Umlaute korrekt an:

Code: Alles auswählen

$db->query&#40;"SET NAMES 'utf8' COLLATE 'utf8_general_ci'"&#41;;
KarakTzorn schreibt GEMA-freie Rockmusik.