Kollation, Charsets, altes Dump - neues MySQL - alles irgendwie verfriemelt....

t-eddie
Posts: 45
Joined: 2006-03-07 18:05

Kollation, Charsets, altes Dump - neues MySQL - alles irgendwie verfriemelt....

Post by t-eddie »

Hallo Root-Forum,

ich hab jetzt schon ne weile im Internet recherchiert & auch hier mal geschaut...aber bis auf die aussage -> "musst halt auf UTF-8" umstellen hab ich nicht wirklich was verwertbares gefunden.

Hab hier mal mein Problem...nach dem mein Server gehackt wurde, hab ich alles komplette neuinstalliert und dabei auch meine alten SQL-Dumps wieder eingespielt...und hatte prompt Umlautprobleme -> meine Dumps waren schon nicht ganz korrekt...

Jetzt habe ich das Dump meiner Video-Datenbank per Editor wieder auf "latin1" gebracht - alle umlaute wie ä,ö,ß stehen korrekt im Dump...den Dump habe ich importiert. In der Datenbank stehen die Umlaute jetzt auch korrekt drin...nur die Webseite zeigt jetzt das berühmte "�" an.

Wenn ich in der Video DB den Titel bearbeite, und statt des "�" einen ü eingebe - wird der Titel zwar korrekt angezeigt, aber in der Datenbank steht kein ü sonder kryptischer Schrott.

Meine Frage ist jetzt, wie & wo kann ich einstellen, das in der Datenbank, die Umlaute korrekt abgespeichert werder -> als ä,ü,ß usw.
Und die Webseite mir diese Umlaute auch korrekt anzeigt.

Ich möchte jetzt und in ferner Zunkunft nur Deutsche Seite hosten....brauche die unendliche möglichkeiten der Türkischen, arbaischen und sonst welcher Zeichen nicht...

Vielen Dank schon mal im vorraus.
Top

User avatar
Joe User
Project Manager
Project Manager
Posts: 11519
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Kollation, Charsets, altes Dump - neues MySQL - alles irgendwie verfriemelt....

Post by Joe User »

Wie wurde der Dump genau angelegt?
Top

t-eddie
Posts: 45
Joined: 2006-03-07 18:05

Re: Kollation, Charsets, altes Dump - neues MySQL - alles irgendwie verfriemelt....

Post by t-eddie »

Joe User wrote:Wie wurde der Dump genau angelegt?
Der Dump wurde mit dem dem Script "automysqlbackup" angelegt...
matzewe01 wrote:Stell die Koaititon der DB und auch der Tabellen auf latin 1.
Sofern der Zeichensatz vorher auch Latin1 war, sollte es klappen.
Nun ja - irgendwie hakt es hier - PhpMyAdmin läuft auf Deutsch aber mit UTF-8 (hab es noch nicht gefunden, wo man das default mäßig umstellen kann)

Der MySQL-Zeichensatz ist UTF-8 obwohl ich die my.cnf auf latin1 angepasst hatte...genauso der Zeichensatz / Kollation der MySQL-Verbindung steht default auf UTF-8, obwohl ich der Meinung war, das auch in der my.cnf auf latin1 gestellt habe. Und die importierte Datenbank hat latin1_swedish_ci als Kollation...

Ich denke, irgendwie muss ich die 3 Sachen, die noch UTF-8 sind, auf latin1 umgestellen - aber wie - die my.cnf (unter /etc/mysql/my.cnf) schon angepasst hatte...aber anscheinend werden die änderungen nicht angezogen... :?
Top

User avatar
Joe User
Project Manager
Project Manager
Posts: 11519
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Kollation, Charsets, altes Dump - neues MySQL - alles irgendwie verfriemelt....

Post by Joe User »

Wenn im Dump die Kollationen und Charsets auf latin1 stehen, dann importiere den unveränderten Dump (ohne Deine Editor-Manipulation) mittels:

Code: Select all

mysql -uroot -p --default-character-set=latin1 < /backup/mysqldump.sql
Top

t-eddie
Posts: 45
Joined: 2006-03-07 18:05

Re: Kollation, Charsets, altes Dump - neues MySQL - alles irgendwie verfriemelt....

Post by t-eddie »

Joe User wrote:Wenn im Dump die Kollationen und Charsets auf latin1 stehen, dann importiere den unveränderten Dump (ohne Deine Editor-Manipulation) mittels:

Code: Select all

mysql -uroot -p --default-character-set=latin1 < /backup/mysqldump.sql
So, das habe ich jetzt gemacht. Der "orginal" Dump ist wieder in der Datenbank . In der Datenbank selbst jetzt jetzt alles mit ä ö ü usw. -> beispiel:

Code: Select all

Stealing Rembrandt - Klauen für Anfänger
Die Webseite zeigt es jedoch so an:

Code: Select all

Stealing Rembrandt - Klauen f�r Anf�nger
Also zwar immer noch fragezeichen, aber wenigstens nicht mehr als komplett anderes Zeichen (schwarzes Quadrat)

Wenn ich jetzt in der Webseite den Titel editiere - anstatt "f?r" also "für" eintrage, steht das hier in der Datenbank:

Code: Select all

Stealing Rembrandt - Klauen für Anf�nger
obwohl ich nur das "für" editiert habe - und die Website gibt folgendes aus:

Code: Select all

Stealing Rembrandt - Klauen für Anf�nger
Bin ich einfach zu doof :cry: oder was mache ich falsch???
Top

oxygen
RSAC
Posts: 2179
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Kollation, Charsets, altes Dump - neues MySQL - alles irgendwie verfriemelt....

Post by oxygen »

Das Problem ist wahrscheinlich dass der Apache versucht UTF auszuliefern. Poste doch mal einen Link.
Top

t-eddie
Posts: 45
Joined: 2006-03-07 18:05

Re: Kollation, Charsets, altes Dump - neues MySQL - alles irgendwie verfriemelt....

Post by t-eddie »

oxygen wrote:Das Problem ist wahrscheinlich dass der Apache versucht UTF auszuliefern. Poste doch mal einen Link.
Hier mal der Link http://videodb.ej28.de/index.php zum Problem. Wäre echt klasse wenn ich das irgendwie, wieder hinbekommen würde....
Top

User avatar
Joe User
Project Manager
Project Manager
Posts: 11519
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Kollation, Charsets, altes Dump - neues MySQL - alles irgendwie verfriemelt....

Post by Joe User »

Es ist wie von oxygen vermutet, der Apache sendet "Content-Type: text/html; charset=UTF-8". Die Ursache liegt vermutlich in einem entsprechendem "header()"-Aufruf im PHP-Script (man grep).
Top

oxygen
RSAC
Posts: 2179
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Kollation, Charsets, altes Dump - neues MySQL - alles irgendwie verfriemelt....

Post by oxygen »

Wenn man sich z.B. folgendes anschaut:
# wget --save-headers -O- -q http://videodb.ej28.de/index.php | head -n 25
HTTP/1.1 200 OK
Date: Tue, 24 Jul 2007 13:29:53 GMT
Server: Apache/2.2.3 (Debian) PHP/5.2.0-8+etch7
X-Powered-By: PHP/5.2.0-8+etch7
Set-Cookie: PHPSESSID=58a0b1d0c3a0ae08c9dd8fc067b3b4e4; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: VDBusername=deleted; expires=Mon, 24-Jul-2006 13:29:52 GMT; path=/
Set-Cookie: VDBpassword=deleted; expires=Mon, 24-Jul-2006 13:29:52 GMT; path=/
Set-Cookie: VDBuserid=10000; path=/
Set-Cookie: VDBusername=deleted; expires=Mon, 24-Jul-2006 13:29:52 GMT; path=/
Set-Cookie: VDBpassword=deleted; expires=Mon, 24-Jul-2006 13:29:52 GMT; path=/
Set-Cookie: VDBuserid=10000; path=/
Connection: close
Content-Type: text/html; charset=UTF-8

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de" dir="ltr">
<head>
<title>VideoDB</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="description" content="VideoDB" />
<link rel="stylesheet" href="templates/modern/compact.css" type="text/css" />
<link rel="alternate" type="application/rss+xml" title="VideoDB RSS" href="index.php?export=rss" />
Fällt auf, dass der Apache den falschen Charset ( UTF-8 ) sendet, obwohl es in der Datei richtig deklariert ist.
Wahrscheinlich steht in der Apache Konfiguration AddDefaultCharset UTF-8. Lösche diese Zeile und das Problem sollte gelöst sein.
Last edited by oxygen on 2007-07-24 19:21, edited 1 time in total.
Top

der kleine tux
Posts: 97
Joined: 2005-10-29 04:12
Location: Planet Erde

Re: Kollation, Charsets, altes Dump - neues MySQL - alles irgendwie verfriemelt....

Post by der kleine tux »

Hallo

bei apache2.2 gibt es in /etc/apache2/conf.d/charset
"AddDefaultCHarset UFT-8"

warum auch immer... zumindestens bei mir immer vorhanden gewesen "Debian"

Gruß
Top