
|
|
|
|||
|
Ich habe gehört, dass man xt:Commerce ganz auf UTF-8 umstellen kann, um Darstellungsprobleme zu beseitigen.
Wie genau funktioniert das? Welche Dateien muss ich ändern? (Mein Shop ist auf Deutsch und Russisch) Ich bin für jede Hilfe dankbar! |
|
|||
|
Hi, danke!
Wenn Du das auch noch mal auf Deutsch schreiben könntest - ich kann kyrillisch zwar lesen, aber leider nicht übersetzen spassibo! |
|
|||
|
Zitat:
Die meisten Darstellungsprobleme kommen doch daher, dass ich die Daten z.B. in UTF-8 abspeicher, aber in ISO-8859-15 ausgeben, oder anders herum. Ich gehe mal davon aus, wir sprechen nur von diesen beiden Zeichensätzen. Habe ich in der Datenbank meine Zeichen in ISO-8859-15 abgelegt, dann muss ich das dem Client auch sagen. Das mache ich doch mit dieser Zeile: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15"> |
|
||||
|
Zitat:
Zitat:
Sinnvoll ist es durchaus einen Shop, der verschiedenste Sprachen 'spricht' gleich UTF8 zu codieren und dann dem Shop zu sagen, dass er auch UTF8 ausliefern soll. Dann muss die Datenbank auch UTF8 codieren und es klappt auch mit Kyrillisch oder Farsi oder gar Chinesischen oder Japanischen Schriftzeichen. Kyrillisch geht ja noch, die schreiben ja auch von links nach rechts aber bei Farsi oder Asiatischer Schrift wird es ganz übel - aber mit UTF8 hast Du die Zeichen zumindest mal richtig in der Datenbank, das Ausliefern musst Du dann mit einem angepassten theme vornehmen. Zitat:
Zitat:
Es gibt ja nur ein paar unwichtige Konfigurationsdateien bei XTC! So etwas hasse ich, klugsch... und einen Brocken hinwerfen, mit dem man nicht wirklich was anfangen kann. Alles muss man selber machen, also, umbauen von XTC geht so: Erst einmal ein Backup der Datenbank machen, wenn man nicht (wie ich) den Shop gleich auf UTF8 umstellen will. Ich habe dafür PHPmyadmin benutzt, da klickt man einfach auf export, wählt SQL als Export und klickt Senden an, damit man es herunterladen kann. Die Manipulation der Datenbank habe ich direkt mit mysql gemacht, das Kommando dafür ist: ALTER DATABASE <Datenbankname_ohne_Klammer> DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; So, jetzt ist die Datenbank (für neu angelegte Tabellen) auf UTF8 eingestellt. Dumm ist nur, dass da zig Tabellen schon drin sind, die man nun alle umwandeln muss: ALTER TABLE <tablename> CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; So, wenn man die alle durch hat, schaut man mit PHPmyadmin mal nach, ob sie auch alle schön konvertiert worden sind und damit ist die Datenbank erstmal erledigt. Dumm ist nur, dass nun die Datenbank UTF8 liefert, nun aber lustige Zeichen erscheinen, wenn man sich die Seite anschaut. Was tun? Der Schlüssel hierfür liegt in /includes/header.php auf ca. Zeile 35: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Damit liefert der Shop nun UTF8 aus, aber dummerweise weiss er noch nicht, dass aus der Datenbank nun auch UTF8 kommt: In inc/xtc_db_connect.inc.php auf etwa Zeile 39 steht: if ($$link) mysql_select_db($database); da setzt der Könner noch: mysql_query("SET NAMES 'UTF8'"); drüber und gut is. Dumm ist nur das Kontaktformular, da habe ich mal einen Test gefahren und mit Sonderzeichen aus aller Herren Länder um mich geworfen und es kam im Header die Info mit der Mail an: Content-Type: text/plain; charset = "iso-8859-15" Content-Transfer-Encoding: 8bit Was ja in dem Fall total sch...ade ist. Vielleicht weiss ja jemand in dem Fall mehr als ich, ich denke, dass ich da PHP sagen muss, in diesem Fall doch dem Mailserver (in meinem Fall Postfix), dass diese Mail UTF8-codiert ist. Allerdings wage ich zu bezweifeln, dass das so einfach geht, wie das oben beschriebene. Hoffe, das Problem des einen oder anderen nun gelöst zu haben. Ich muss nun ein Theme anpassen und ich habe keine Ahnung, wie ich das machen soll um persische Schriftzeichen richtig von rtl (right to left) auszugeben, denn in der Datenbank landen sie andersrum, wenn man sie eingibt. Ganz schön gaga... Gruß, Mussa |
|
|||
|
Zitat:
Für mich stellte sich auch erst mal nur die Frage warum muss xtc zwingend auf UTF8 umgestellt werden. Aber gut UTF8 ist zumindest auch nicht falsch, ich glaube aber, dass man dann so einiges im Shop umstellen muss. Ich habe mal was zu einem Bug geschrieben, wo du definitiv was ändern musst, damit der Zeichensatz richtig ist: Zeichensatzprobleme nach dem Editieren einer Bestellung Ansonsten würde ich einfach mal mit einem grep "charset=" oder so ähnlich über die Dateien gehen. Da sollte eigentlich immer so etwas wie ?php echo CHARSET stehen. und irgendwo muss CHARSET ja definiert sein, da ich aktuell nicht an den Quelltext komme, kann ich dir aber nicht sagen wo. |
|
|||
|
Mir hat dies hier geholfen :
hxxp://www.programmierer-forum.de/utf-8-in-iso-8859-1-konvertieren-mysql-datenbank-t67635.htm ich hoffe sowas darf ich hier als Hilfe posten. Nachdem Einbau hat mir das ca. 62.000 Sonderzeichen in weniger als 5 min umgewandelt. Und es passt. |
|
|||
|
Und doch habe ich Probleme.
Die zeichen stimmen soweit bis auf das Eurozeichen. Aber das lässt sich manuell beheben. Nun wird aber im Quelltext ein merkwürdiger Umbruch gezeigt, der wohl auch Folgen hat. Es wird nicht der in der DB angegebene Zeichesatz (utf-8)angegeben, sondern der wie man hier sieht : <meta http-equiv="Content-Type" content="text/html; charset=utf8_unicode_ci " /> So wie die zeile hier steht mit dem Umbruch am Ende wird es im Quelltext dar gestellt - ich habe den ganzen Morgen gesucht aber nichts gefunden um das zu ändern. Kann mir jemand hier weiter helfen ??? Wäre sehr nett Danke |
|
|||
|
Ist:
<meta http-equiv="Content-Type" content="text/html; charset=utf8_unicode_ci " /> Soll: <meta http-equiv="Content-Type" content="text/html" charset="utf8_unicode_ci" /> Da müsste etwas im Code falsch sein. |
![]() |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Alternative zu einem Iframe?! | kaktus82 | Template System | 18 | 14.05.2008 08:35 |
| Title auf Startseite | SmokingElephant | Template System | 8 | 15.10.2007 10:37 |