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

Probleme Zeichenkodierung nach Umstellung auf UTF-8

Informationen & SEO Tipps zum Einsatz und Verwendung von Blog-, Wiki und Content Management Systemen wie Drupal, Typo3, Wordpress, Reddot, Joomla, Moin Moin, phpWiki sowie Shop-Systemen wie z.B. XT-Commerce, Magento, ePages, Intershop, 1&1 Shops.
Neues Thema Antworten
TOPGESCHENKEWELT
PostRank 1
PostRank 1
Beiträge: 19
Registriert: 07.03.2013, 23:32

Beitrag von TOPGESCHENKEWELT » 07.03.2013, 23:49

Ich habe meinen XT-Commerce-Shop umgestellt von iso auf UTF-8, aber hier gibt es nun ein paar Probleme bezüglich der Zeichenkodierung von Umlauten.
Der Seiteninhalt ist in utf-8 und auch die Datenbank ist komplett in UTF-8.

Bei dem Title in der Browser-Url tauchen komische Zeichen und Entities auf. Diese werden leider nicht in utf-8 ausgegeben.

Hier nun ein Link, wo man diese falschen Umlaute in der Browserurl sieht:
https://www.topgeschenkewelt.de/product ... ntopf.html

Woran könnte das denn liegen? :roll:
Zuletzt geändert von TOPGESCHENKEWELT am 08.03.2013, 12:45, insgesamt 1-mal geändert.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


HW
PostRank 8
PostRank 8
Beiträge: 761
Registriert: 04.04.2004, 08:00
Wohnort: Viersen

Beitrag von HW » 08.03.2013, 11:33

..so eine Shopwebsite besteht aus vielen Templates, Du musst nun herausfinden, in welchem Template das HTML für die Meta-Tags generiert wird. Dieses Template musst Du in einem Editor öffnen und neu abspeichern (ohne Änderung) - mit der "Dateicodierung UTF-8". Wenn das Template schon mal unachtsam unter der Dateicodierung Ansi abgespeichert wurde, kommt es zu diesem Fehler. Es gibt einige frei verfügbare Editoren die das Abspeichern mit der Dateicodierung UTF-8 ermöglichen - ich glaube sogar Notepad kann das.

Gruß
HW

proit
PostRank 8
PostRank 8
Beiträge: 664
Registriert: 15.10.2007, 12:05

Beitrag von proit » 08.03.2013, 11:50

Ich gehe mal davon aus, dass es ein Linux Server ist. Mit iconv kannst das Format einfach konvertieren.

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

Beitrag von Melegrian » 08.03.2013, 12:06

Bei den Meta-Tags sehe ich nichts. Betrifft, nach dem was ich sah, nur die Titel und die sind in der DB sauber enthalten?

Code: Alles auswählen

Plüsch-Radio
Bin mir gerade nicht schlüssig, doch nur eine falsch abgespeicherte Datei würde eigentlich nicht à und ¼ ausgeben, sondern stattdessen Glyphen darstellen, was hier aber nicht der Fall ist. In Verbindung mit DOM sah ich aber eine derartige Ausgabe schon. Was mit Sicherheit nicht an DOM lag, sondern an einer unsauberen Konvertierung oder so, die PHP ohne DOM geschluckt hätte.

TOPGESCHENKEWELT
PostRank 1
PostRank 1
Beiträge: 19
Registriert: 07.03.2013, 23:32

Beitrag von TOPGESCHENKEWELT » 08.03.2013, 12:44

Danke für die Antworten.
@Melegrian
Ja richtig betrifft den Titel. Habe ich nun in meinem Anfangsposting geändert.
Es ist aber auch im Kategorien-Link so, z.B. Kategorie Schlüsselketten:
https://www.topgeschenkewelt.de/index.p ... etten.html

Ich habe einen Apache-Server und in der Datenbank ist auch alles ok.
Gestern abend habe ich eine Test gemacht:
Bei phpmyadmin bin ich in der Tabelle product_description, wenn ich
dort manuell bei products_name Plüsch-Radio in Plüsch-Radio,
dann wird es im Shop richtig angezeigt.

Vielleicht kann man mir anhand dieses Tests mehr zu diesem Phänomen sagen

TOPGESCHENKEWELT
PostRank 1
PostRank 1
Beiträge: 19
Registriert: 07.03.2013, 23:32

Beitrag von TOPGESCHENKEWELT » 08.03.2013, 14:13

Für das Title-Tag hier auch mal meine metatags.php

<title><?php $_SESSION['page_desc'] = htmlentities($meta_title); echo $_SESSION['page_desc'];?></title>

Ich denke mal, dass diese entsprechend angepasst werden muss, aber wie?

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

Beitrag von Melegrian » 08.03.2013, 18:18

Ändert sich etwas, wenn Du mal statt htmlentities htmlspecialchars verwendest? Für beide gilt:
Standardwert ist ISO-8859-1 in PHP Versionen vor 5.4.0 und UTF-8 in PHP 5.4.0 und neuer.
https://php.net/manual/de/function.htmlentities.php

Oder auch mal so probieren:

Code: Alles auswählen

htmlentities&#40;$meta_title, ENT_QUOTES, "UTF-8"&#41;;

TOPGESCHENKEWELT
PostRank 1
PostRank 1
Beiträge: 19
Registriert: 07.03.2013, 23:32

Beitrag von TOPGESCHENKEWELT » 08.03.2013, 18:28

Hallo,
nein, leider keine Änderung.
Standardwert ist ISO-8859-1 in PHP Versionen vor 5.4.0 und UTF-8 in PHP 5.4.0 und neuer.
Liegt dies dann an meiner PHP-Version?
Bin nämlich bei 1&1 da steht MySQL5.0

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

Beitrag von Melegrian » 08.03.2013, 18:48

Nein, eigentlich nicht, hätte nur sein können, dass htmlentities da mehr umwandelt als erforderlich. Die Werte für $meta_title kommen ja irgendwoher und auf dem Weg von Datenbank bis zur Ausgabe ist irgendetwas wie es nicht sein sollte.

U+00BC ist zum Beispiel &frac14; als HTML-Entitie:

https://www.utf8-zeichentabelle.de/unic ... ?htmlent=1

Doch warum das so umgewandelt wird, keine Ahnung, nehme aber an, dass unterwegs etwas doppelt kodiert wird oder so.

TOPGESCHENKEWELT
PostRank 1
PostRank 1
Beiträge: 19
Registriert: 07.03.2013, 23:32

Beitrag von TOPGESCHENKEWELT » 08.03.2013, 21:08

Ich bin nach dieser Anleitung hier vorgegangen:

https://www.reitenschwimmenlesen.de/blo ... umstellen/

Hat einer noch eine Idee, was ich tun kann?

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

Beitrag von Melegrian » 09.03.2013, 12:30

Eine richtige Idee habe ich nicht, weil der Fehler ja irgendwo im Detail liegt. Je nachdem, wie viel Erfahrung Du besitzt, würde ich aber mal den Titel aus der Datenbank mit einer einzelnen Testseite abfragen.

Das, was jetzt ausgegeben wird, sind ja HTML-Entities für Glyphen wie ü und ein Notbehelf wäre, Entities und Glyphen von Umlauten in einer Funktion in Umlaute zu verwandeln. Das wäre aber nur ein Notbehelf für die Ausgabe und würde das eigentliche Übel nicht beseitigen.

Weiter oben wurde von HW bereits erwähnt, dass eventuell eine Datei zu UTF-8 konvertiert werden müsste. Wenn ich nun eine beliebige PHP Seite nehme, darin einen String mit Umlauten einfüge "ÄäÖöÜüß", die Datei im Notepad++ erst "Konvertiere zu UTF-8 ohne BOM" und dann speichere, dann ist es gut. Aber wenn ich dann beim erneuten öffnen die Ansicht von UTF-8 nach ANSI wechsle, dann sehe ich die Umlaute als Glyphen: "ÄäÖöÜüß"

Bei Dir geht es nun noch einen Schritt weiter, da werden die Glyphen zusätzlich noch in HTML-Entities verwandelt. Also müsste da vielleicht wirklich noch eine Datei zu UTF-8 konvertiert werden oder es wird etwas doppelt kodiert oder wie auch immer. Hier lief auch mal ein Thread mit einem Umlautproblem, da war es eine simple Umstellung der Datenbank-Abfrage.

Edit: meinte diesen Thread:
KarakTzorn hat geschrieben:

Code: Alles auswählen

$db->query&#40;"SET NAMES 'utf8' COLLATE 'utf8_general_ci'"&#41;;
https://www.abakus-internet-marketing.d ... p?t=110599

Könnte auch einen Hinweis liefern:

https://www.abakus-internet-marketing.d ... hp?t=79775

TOPGESCHENKEWELT
PostRank 1
PostRank 1
Beiträge: 19
Registriert: 07.03.2013, 23:32

Beitrag von TOPGESCHENKEWELT » 09.03.2013, 14:21

Vermutlich liegt es an meiner ziemlich alten XT-Commerce-Version (ca. 7 Jahre alt). Wie ich auch gestern von meinem Provider erfahren habe, wird diese ab Oktober dann definitiv nicht mehr laufen aufgrund der PHP-Umstellung.
Somit ist für mich ohnehin eine neuere Version fällig.
Ich gehe davon aus, dass sich dann mein Problem ohnehin erledigt.

Entweder dann modified 1.06 oder ne andere XT-Commerce-Version, z.B. 4er.

Vielleicht kann mir ja jemand mehr dazu sagen, der hier so eins im Einsatz hat.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag