Zeichensatzproblem

Zeichensatzproblem

am 02.01.2008 04:13:45 von Rudi Klingenberg

Hallo allerseits,

hoffentlich kann mir jemand von euch weiterhelfen...Ich verzweifle immer
wieder an diesem Zeichensatzproblem!

Ich habe Wordpress normal installiert ->
http://www.porta-croatia.de/service/blog/ - Zeichensätze werden korrekt
dargestellt. Auch wenn über phpmyadmin kryptische Zeichen in der
Datenbank vorhanden sind.

Einfacher "select"-Befehl für die Startseite ->
http://www.porta-croatia.de/ - Genau die kryptischen Zeichen, welche
auch in der DB vorhanden sind, werden hier dargestellt....

Warum? Woran liegt es? Muss ich im "select" auch schon einen Zeichensatz
auswählen?

Alles Gute im neuen Jahr...

Rudi

Re: Zeichensatzproblem

am 02.01.2008 09:17:45 von Joerg Behrens

Rudi Klingenberg schrieb:
> Hallo allerseits,
>=20
> hoffentlich kann mir jemand von euch weiterhelfen...Ich verzweifle imme=
r=20
> wieder an diesem Zeichensatzproblem!
>=20
> Ich habe Wordpress normal installiert ->=20
> http://www.porta-croatia.de/service/blog/ - Zeichensätze werden korre=
kt=20
> dargestellt. Auch wenn über phpmyadmin kryptische Zeichen in der=20
> Datenbank vorhanden sind.

Der sagt dem DB Server ja auch in welchem Format er die Daten haben will.=


> Einfacher "select"-Befehl für die Startseite ->=20
> http://www.porta-croatia.de/ - Genau die kryptischen Zeichen, welche=20
> auch in der DB vorhanden sind, werden hier dargestellt....
>=20
> Warum? Woran liegt es? Muss ich im "select" auch schon einen Zeichensat=
z=20
> auswählen?

Nein, das must du VOR dem "select" tun. Am besten gleich nach dem=20
connect in dem du ein "SET NAMES xxx" absetzt, wobei xxx fuer den=20
Charset steht wie UTF8 z.B.
Du must deinem Datenbankserver schon sagen in welchem Charset er die=20
Daten schicken soll.

Guck dir mal
http://blog.koehntopp.de/archives/1424-MySQL-Zeichensatz-Gru ndlagen.html

Gruss
Joerg

--=20
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de

Re: Zeichensatzproblem

am 02.01.2008 19:11:57 von Rudi Klingenberg

Hallo,

[..]
> Nein, das must du VOR dem "select" tun. Am besten gleich nach dem
> connect in dem du ein "SET NAMES xxx" absetzt, wobei xxx fuer den
> Charset steht wie UTF8 z.B.
> Du must deinem Datenbankserver schon sagen in welchem Charset er die
> Daten schicken soll.

Hallo, danke für deinen Tipp. Ich habe mir auch die Anleitung von
koehntopp durchgelesen, aber es klappt einfach nicht. WP scheint utf-8
zu verwenden. Ich versuche dies ebefalls:

mysql_db_query($db,"SET NAMES UTF8");
$res = mysql_db_query($db,"select ID,post_title,post_content,guid from
wp_posts order by post_date desc limit 0,2");

Eine wirklich simple Abfrage ;-) Leider funktioniert es nicht. Kann es
noch weitere Ursachen haben? Ich benutze smarty, liegt es vielleicht daran?

Bin wirklich für jeden Hinweis dankbar...

Rudi

Re: Zeichensatzproblem

am 02.01.2008 19:30:25 von Niels Braczek

Rudi Klingenberg schrieb:

> mysql_db_query($db,"SET NAMES UTF8");

Das hätte auch beim Einstellen der Daten gemacht werden müssen. Versu=
che
also zuerst, ob *neue* Daten mit dieser Einstellung korrekt übergeben
werden. Falls ja, korrigiere die kaputten Daten in der DB. Falls nein,
liegt noch ein anderes (weiteres) Problem vor.

MfG
Niels

--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------

Re: Zeichensatzproblem

am 02.01.2008 19:33:11 von Rudi Klingenberg

Hallo Niels,

>> mysql_db_query($db,"SET NAMES UTF8");
>
> Das hätte auch beim Einstellen der Daten gemacht werden müssen. Versuche
> also zuerst, ob *neue* Daten mit dieser Einstellung korrekt übergeben
> werden. Falls ja, korrigiere die kaputten Daten in der DB. Falls nein,
> liegt noch ein anderes (weiteres) Problem vor.

Danke für dein rasches Feedback. Die Daten sind richtig eingelesen. WP
liest es ja ebenfalls korrekt aus, ich greife ja auf die selbe DB zu.
Ich denke hier muss ein anderes Problem vorliegen, leider weiss ich
nicht welches. Es ist die gleiche Datenbank, gleicher Server usw...

Gruß Rudi

Re: Zeichensatzproblem

am 02.01.2008 19:35:58 von Joerg Behrens

Rudi Klingenberg schrieb:
> Hallo,
>=20
> [..]
>> Nein, das must du VOR dem "select" tun. Am besten gleich nach dem=20
>> connect in dem du ein "SET NAMES xxx" absetzt, wobei xxx fuer den=20
>> Charset steht wie UTF8 z.B.
>> Du must deinem Datenbankserver schon sagen in welchem Charset er die=20
>> Daten schicken soll.
>=20
> Hallo, danke für deinen Tipp. Ich habe mir auch die Anleitung von=20
> koehntopp durchgelesen, aber es klappt einfach nicht. WP scheint utf-8 =

> zu verwenden. Ich versuche dies ebefalls:
>=20
> mysql_db_query($db,"SET NAMES UTF8");

http://de.php.net/mysql_db_Query
This function is deprecated, do not use this function. Use=20
mysql_select_db() and mysql_query() instead.

> $res =3D mysql_db_query($db,"select ID,post_title,post_content,guid fr=
om=20
> wp_posts order by post_date desc limit 0,2");
> Eine wirklich simple Abfrage ;-) Leider funktioniert es nicht. Kann es =

> noch weitere Ursachen haben? Ich benutze smarty, liegt es vielleicht da=
ran?

Nein, liegt es nicht.

Was fuer einen Charset soll deine HTML Seite eigentlich bekommen bzw.=20
als was liefert sie dein Webserver aus?

Kann es sein das du die Seite als ISO-8859-1 deklarierst dann aber UTF8 =

Inhalte sendest? Logisch das du dann nur Hyroglyphen siehst. Sage deinem =

Browser was kommt.... dann klappt das auch.

Wenn du garkein Utf8 senden moechtest solltest du deinem MySQL Server=20
sagen er solle die die Inhalte als 8859-1 liefern.


Dein PMA liefert HTML als UTF8 aus und holt sich entsprechend auch so=20
die Daten aus der DB... egal in welchem Format die eigentlich=20
gespeichert sind.

Gruss
Joerg

--=20
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de

Re: Zeichensatzproblem

am 02.01.2008 19:39:03 von Claus Reibenstein

Rudi Klingenberg schrieb:

> WP scheint utf-8 zu verwenden.

Wer oder was ist WP?

> mysql_db_query($db,"SET NAMES UTF8");

Diese Funktion ist seit PHP 4.0.6 veraltet. Außerdem prüfst Du den
Fehlerstatus nicht ab. Das solltest Du mal als erstes ändern.
Wahrscheinlich erledigt sich das Problem dann schon von alleine.

Gruß. Claus

Re: Zeichensatzproblem

am 02.01.2008 20:51:45 von Jonas Werres

> http://de.php.net/mysql_db_Query
> This function is deprecated, do not use this function. Use
> mysql_select_db() and mysql_query() instead.

Die sind auch nicht taufrisch. -> mysqli_query, wenn man denn nicht
gleich PDO nehmen will.

Re: Zeichensatzproblem

am 02.01.2008 21:59:59 von Rudi Klingenberg

Hallo Jörg,

> Kann es sein das du die Seite als ISO-8859-1 deklarierst dann aber UTF8
> Inhalte sendest? Logisch das du dann nur Hyroglyphen siehst. Sage deinem
> Browser was kommt.... dann klappt das auch.

Das war es. Danke ;-)

Gibt es irgendwo eine Beschreibung bzgl. der ganzen Zeichensätze?

PHP:
header('Content-Type: text/html; charset=utf-8');

HTML:


es gibt zich verschiedende Deklarationen...

Gruß Rudi

Re: Zeichensatzproblem

am 03.01.2008 00:03:35 von Joerg Behrens

Rudi Klingenberg schrieb:
> Hallo Jörg,
>=20
>> Kann es sein das du die Seite als ISO-8859-1 deklarierst dann aber=20
>> UTF8 Inhalte sendest? Logisch das du dann nur Hyroglyphen siehst. Sage=
=20
>> deinem Browser was kommt.... dann klappt das auch.
>=20
> Das war es. Danke ;-)
>=20
> Gibt es irgendwo eine Beschreibung bzgl. der ganzen Zeichensätze?
>=20
> PHP:
> header('Content-Type: text/html; charset=3Dutf-8');

Das ist HTTP

> HTML:
> ">

Das ist HTML


Gruss
Joerg

--=20
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de

Re: Zeichensatzproblem

am 03.01.2008 17:46:35 von Peter Kern

Claus Reibenstein schrieb:
> Rudi Klingenberg schrieb:
>
>> WP scheint utf-8 zu verwenden.
>
> Wer oder was ist WP?
>


Gruß Peter