Jürgen Schilling - Natur | Fotografie | Technik .

 

JürgenSchilling

Natur | Fotografie | Technik

 
 

 Home

 Black&White
 Cyanotypie
 Fotogramme
 Infrarot
 Jägerprüfung
 Kategorien
 Kirlianfotografie
 Lochkamera
 Makroaufnahmen



Lightbox


 Manuals:
 
Alle Manuals
 Aluminium eloxieren
 Hochspannungsgenerator
 Belichtungszeitentabelle
 Beurteilung v. Negativen
 Blitzlichtfotographie
 Farbmischung
 Filmentwicklung
 Infrarotfotografie
 Teslatrafo
 Teslatrafo Rechner
 Schrauben u. Gewinde

 Entwicklingszeiten:
 Agfa Rodinal
 Kodak D76

 Tiefenschäferechner

 
 Impressum


______

















  
  Bilder pro Gast
  phpMyAdmin
  B4YCounter
  Most viewed
  Logout
  Login
  Theme curve
  Theme my-fruity

Eine bestehende Webseite auf UTF-8 umstellen


Doch wozu ist das nötig?
Umlaute und Sonderzeichen werden nicht richtig dargestellt.

Es gibt viele verschiedene Zeichen-Kodierungen, die unterschiedliche Normungen haben. Doch viele dieser Zeichensätze haben das Problem, daß sie nur eine bestimmte
Menge an Teilmenge der auf der Welt bestehenden Zeichen darstellen können.
Die meisten (deutschen) Webseiten sind derzeit mit iso-8859-1 kodiert. Das reicht für gewöhnlich aus, wenn man deutsche Seiten schreiben will, denn
dieser Zeichensatz umfaßt alle Buchstaben, Zahlen und Sonderzeichen der deutschen Sprache.
Doch was macht man, wenn man nun z.B. chinesische Zeichen schreiben muß  Diese sind nicht im iso-8859-1 Zeichensatz vorhanden. Hier kommt UTF-8 ins Spiel, denn mit UTF-8 ist es möglich, die Zeichen jeder Sprache zu schreiben.


Bestehende Seiten umwandeln:

Unter Linux kann man beliebige Dateien mit einem Befehl von iso-8859-1 in UTF-8 umkonvertieren.
Dazu wechselt man in das Verzeichnis wechseln, in dem die Webseite liegt und gilbt folgenden Befehl ein:

find . -name '*.php' -exec recode latin1..u8 {} \;

Je nachdem, ob noch Dateien mit anderen Extensions existieren, ist das .php durch .html, .xhtml usw. ersetzen.

ACHTUNG: Nie Extensions von Binärdateien, wie z.B. Bildern, Videos usw. angeben. Diese so hiermit zerstört.

Soll von einem anderen Dateiformat als ISO-8859-1 zu UTF-8 konvertieren werden, ist in der Manualpage von "recode" nachzuschauen.

!!! Die Konvertierung darf nur 1x durchgeführt werden. Wird das Kommando auf Files angewendet, die bereits nach UTF-8 konvertiert wurden,
werden die Sonderzeichen zu "irgend etwas" umgesetzt !!!



Korrekten Meta-Tag setzen:

Damit die Browser wissen, welche Kodierung die Internetseite verwendet, gibt es ein bestimmtes Meta-Tag. Bei ISO-8859-1 lautete dies:


<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

Dieses mu?nun ersetzt werden durch:

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

Das muß auf  jeder Seite gemacht werden, wo dieses Meta-Tag enthalten ist!


MySQL-Datenbestand
auf UTF-8 umstellen:


Damit man sich nicht die Mühe machen muß alle Datenbestände manuell konvertieren zu müssen, kann man dieses Script benutzen:
 

<?PHP
  $hostname = "localhost";      // Standard
  $database = "Datenbank-Name"; // ändern
  $username = "Benutzername";   // ändern
  $password = "Passwort";       // ändern
 
  mysql_connect($hostname, $username, $password);
  mysql_query("ALTER DATABASE $database DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci");

  $res = mysql_query("SHOW TABLES FROM $database");
  while($row = mysql_fetch_row($res))
  {
      $query = "ALTER TABLE {$database}.`{$row[0]}` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci";
      mysql_query($query);

      $query = "ALTER TABLE {$database}.`{$row[0]}` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci";
      mysql_query($query);
  }
?>


MySQL-Datenbank anweisen, UTF-8 auszuliefern:

Selbst wenn der Datenbestand nun in UTF-8-Kodierung vorliegt, liefert die Datenbank die Daten noch anders kodiert aus. Hier muß man der Datenbank sagen, wie sie die Daten ausliefern soll.
Dazu schickt man den Befehl :


SET NAMES 'utf8';

an die Datenbank und alles klappt wunderbar. Wenn man z.B. eine PHP-Datei für den Verbindungsaufbau zur Datenbank hat, empfiehlt es sich, diesen Befehl direkt nach Aufbau der Verbindung zu senden:

<?PHP mysql_query("SET NAMES 'utf8'"); ?>



Editor mit UTF-8-Unterstützung benutzen:

Alle diese Maßahmen nützen nichts, wenn man einen Editor benutzt, der keine Unterstützung für UTF-8 hat. Wenn man nun etwas an einer Seite ändert oder neue Seiten erstellt, müssen diese
auch wieder im UTF-8-Format abgespeichert werden.


Frontpage 2002 / 2003  anweisen ein Dokument als UTF-8 abzuspeichern:

Jedes Dokument, das <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> enthält , wird von FrontPage 2002 als UTF-8 verarbeitet. Das gilt auch, wenn es Byte-Sequenzen enthält, die in UTF-8 ungültig sind. Solche fehlerhaft codierte Zeichen erscheinen als ? im Quelltext.

Ohne meta-Element  schaltet FrontPage stets auf Windows-1252. (Sie können dies anhand der Schriftart in der HTML-Ansicht erkennen; bei Windows-1252 wird eine Festbreitenschriftart verwendet, bei Unicode-Codierungen eine serifenlose Schriftart.)




 
© 03.09.2009, Juergen Schilling