Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

Websiteumstellung auf UTF-8, wie geht's?

  Alt 31. Jan 2008, 08:35
Hallo,

es ist wirklich grauenhaft, was alles zu tun ist, um eine Website auf UTF-8 umzustellen. Was man da alles verändern muss.
Ich bekomme es jedenfalls nicht korrekt hin, denn entweder wirde es nicht alles in die Datenbank eingetragen oder es wird im Browser falsch codiert dargestellt.

Die MySQL-Datenbank ist so eingestellt (diese 2 Beispiele verdeutlichen das ganz gut):

SQL-Code:
# Datenbank
CREATE DATABASE `main`
    CHARACTER SET 'utf8'
    COLLATE 'utf8_unicode_ci';

# Eine der Tabellen
CREATE TABLE `page_acronyms` (
  `acronym_name` varchar(255) collate utf8_unicode_ci NOT NULL default '',
  `acronym_desc` varchar(255) collate utf8_unicode_ci NOT NULL default '',
  `lang` varchar(4) collate utf8_unicode_ci NOT NULL default '',
  PRIMARY KEY (`acronym_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Wenn ich nun ganz gewöhnlich über die PHP-Funktionen etwas in die Datenbank einfügen (INSERT INTO ...) und auch normal wieder auslesen möchte (SELECT ... FROM ...), dann sehe ich im Browser nur diese seltsamen Zeichen, trotz UTF-8-Header, den ich mittels header() sende und in den Meta-Tags zusätzlich angegeben habe (der Internet Explorer braucht das zwingend dort).

Mir wurde dann der Tipp gegeben, zu Beginn das hier aufzurufen, was jedoch auch nicht weiterhilft, denn das schneidet mir die String ab einem Sonderzeichen einfach ab:

SET NAMES 'utf8' Es kann ja nicht sein, dass ich beim Eintragen und Auslesen immer utf8_encode() bzw. utf8_decode() verwenden muss.

Wo liegt der Fehler?

Grüße
  Mit Zitat antworten Zitat