[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Bestehendes Projekt auf UTF 8 ändern - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Benutzeravatar
rowar
Beiträge: 33
Registriert: 15. Mär 2007, 19:55

Bestehendes Projekt auf UTF 8 ändern

25. Aug 2009, 09:51

Hallo alle zusammen,
ich würde gerne mein bestehendes Redaxo Projekt auf utf8 umstellen. Was muss ich tun?

Ich habe mich mal rangetastet und im Backend unter "system" auf "de_de_utf8" umgestellt, jedoch sind dann im Backend bei den Artikeln alle Umlaute als komische Zeichen dargestellt. Habe die Einstellung gleich wieder rückgängig gemacht.

Mich würde nun interessieren wie ich vorgehen muss, wenn ich nachträglich das Zeichenformat ändern will.

Benutzeravatar
Jan.Kristinus
Admin
Beiträge: 2166
Registriert: 24. Aug 2004, 22:11
Wohnort: Frankfurt
Kontaktdaten: ICQ Website

25. Aug 2009, 11:30

Hallo,

jetzt laeuft alles auf utf8, was aber auch heisst, dass die bisherigen iso-1 zeichen z.t. falsch angezeigt werden.

das beste ist, du laesst ein skript über die datenbank laufen und wandelst alles in utf8 um. schau mal im wiki, ich glaube da gibt es sowas.

lg

jn
Yakamara Media GmbH & Co. KG | Kaiserstrasse 69 | 60329 Frankfurt
Tel.: 069-900.20.60.30
http://www.yakamara.de/

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

25. Aug 2009, 12:56

Hallo Jan!
Jan.Kristinus hat geschrieben:das beste ist, du laesst ein skript über die datenbank laufen und wandelst alles in utf8 um. schau mal im wiki, ich glaube da gibt es sowas.
Das Problem dabei ist, dass künftige Daten aber immer noch falsch in die Datenbank gespeichert werden, da der von mir angesprochene Bug auch in der neuesten Entwicklerversion (SVN-Version aus dem Ordner "trunk") immer noch existiert.

Kann man die auskommentierte Zeile 46 aus der Datei /redaxo/include/classes/class.rex_sql.inc.php fest in die neueste Version einbauen?
Wieso ist diese Zeile überhaupt auskommentiert?
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

zehbaeh
Beiträge: 556
Registriert: 17. Okt 2006, 11:52
Wohnort: Solingen

25. Aug 2009, 13:04

Neben der von Xong angesprochenen Unzulänglichkeit ist ausserdem zu beachten
das ein Statement wie
"ALTER TABLE %tabelle% CONVERT TO CHARACTER SET utf8"
ggf. dazu führt das MySQL den Datentype der Spalten ändert. Dies trifft dann zu wenn die resultierenden UTF-8 Daten nicht mehr in selbige passen würden.

Benutzeravatar
rowar
Beiträge: 33
Registriert: 15. Mär 2007, 19:55

25. Aug 2009, 13:53

Also wenn ich das jetzt richtig verstanden habe Funktioniert das nicht mit der Version 4.1 und mit 4.2.x nur zum Teil, wenn ich selbst Hand am Code anlege.

Benutzeravatar
Xong
Beiträge: 2081
Registriert: 5. Jun 2008, 08:30
Wohnort: Halle (Saale)

25. Aug 2009, 15:01

rowar hat geschrieben:Also wenn ich das jetzt richtig verstanden habe Funktioniert das nicht mit der Version 4.1 und mit 4.2.x nur zum Teil, wenn ich selbst Hand am Code anlege.
Was soll da nicht funktionieren?
Redaxo läuft definitiv mit UTF-8. Und auch die Umstellung ist kein Problem.

Wenn du möchtest, dass ich dir ein bestehendes System nach UTF-8 konvertiere, mache ich das auch. Das ist ´ne Sache von 10 Minuten. =)

Ich würde wie folgt vorgehen:
  1. Ändern der class.rex_sql.inc.php.
  2. Redaxo auf UTF-8 umstellen.
  3. Datenbank mit alter Kodierung exportieren und utf8-kodiert wieder einspielen.
LG,
Xong

[ externes Bild ] Määääääääääääääääääääääääh!

Benutzeravatar
rowar
Beiträge: 33
Registriert: 15. Mär 2007, 19:55

25. Aug 2009, 15:21

Mhh ist mir zu heiß auf dem laufenden System werd wohl erst ein Testsystem aufsetzen und es dort testen. Ist das Skript aus dem Wiki noch gültig für 4.1?

@Xong: Genau das wollte ich hören :)

zehbaeh
Beiträge: 556
Registriert: 17. Okt 2006, 11:52
Wohnort: Solingen

25. Aug 2009, 16:13

Ich habe das folgende Script als "Pseudo-Addon" (convert) grad mal auf einer 4.2 ISO Testinstallation laufen lassen und keine Fehler festestellen können.
addons/convert/install.inc.php

Code: Alles auswählen

<?php
$sql    = new rex_sql();
$tables = $sql->getArray('SHOW TABLES', MYSQL_NUM);
while(!(empty($tables) || $sql->getError()))
{
    $sql->setQuery(sprintf("ALTER TABLE `%s` CONVERT TO CHARACTER SET utf8", current(array_shift($tables))));
}
if($sql->getError())
{
    $REX['ADDON']['installmsg'][basename(dirname(__FILE__))] = htmlspecialchars($sql->getError());
}
PS: Das installiert natürlich nicht wirklich was.
"Es wurde kein Grund angegeben" sollte als "Fehler" gemeldet werden.

Benutzeravatar
echi
Beiträge: 130
Registriert: 15. Aug 2011, 11:31
Wohnort: Engstingen

Re: Bestehendes Projekt auf UTF 8 ändern

28. Jan 2012, 00:48

Hallo Xong,
hallo Forum,

obwohl der Thread nun auch schon ein paar Tage alt ist, häng ich mich mal hier rein, denn der Betreff passt so gut :D

Ich will das Community Addon installieren, aber das lässt sich nur installieren, wenn Redaxo auf utf-8 eingestellt ist.

Also dachte ich mir, ich stelle mein Redaxo eben mal um.
Ich hab mich vorher hier im Forum umgeschaut und nachdem ich dachte, jetzt hätte ich mich schlau gemacht, hab ich wie folgt umgestellt:
  • 1. Prüfen, ob in der class.rex_sql.inc.php die Zeile nicht auskommentiert ist =>Hier war aber nichts zu änndern.
  • 2. Unter System auf utf-8 umgestellt
  • 3. Den Meta Tag "Charset" im Template auf utf-8 geändert
  • 4. Datenbank mit dem Skript von Xong im Beitrag über mir konvertiert (also mit ...ALTER TABLE ...CONVERT TO CHARACTER SET utf8)
Die Folge war dann, dass mein Browser (Firfox & Opera) die Umlaute trotzdem falsch anzeigen :x
Gut, ich kann meinen Browser ja manuell auf utf-8 umstellen und die Anzeige stimmt. Aber das können ja meine Besucher nicht alle machen :?: :!:

Ich habe dann die Schritte von oben wieder rückgängig gemacht bzw. den Dump von der Datenbank zurückgeschrieben.

Wie kann ich auf utf-8 umstellen?
Wer kann mir helfen :?: :?: :?:

Grüße
echi
Grüße
echi

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Bestehendes Projekt auf UTF 8 ändern

28. Jan 2012, 02:37

echi hat geschrieben:Wie kann ich auf utf-8 umstellen?
Der thread ist alt, die Anleitungen bzw. scripte auch, bzw. treffen nicht dein Thema. Wenn ich deine sig richtig lese, dann läuft deine Seite aktuell mit 4.3.2 als ISO, richtig? Probier mal folgendes:

1. exportier den DB dump über import/export..
2. kontrolliere stichpunktartig die Umlaute im dump, konkret in den slices - also den eigentlichen Seiteninhalten - die sollten ok sein (ignorier dabei evtl. kaputte umlaute in code comments), wenn ja:
3. stell in deinem Editor das encoding auf utf-8 um, änder oben in der 3. Zeile die charset Angabe auf utf-8, und speicher den dump.
4. starte ein 4.3.2 setup im utf-8 modus, importiere den dump, änder die charset Angabe im Template..
5 ..knock on wood
vg, Jan

Benutzeravatar
echi
Beiträge: 130
Registriert: 15. Aug 2011, 11:31
Wohnort: Engstingen

Re: Bestehendes Projekt auf UTF 8 ändern

30. Jan 2012, 17:00

Hallo,

vielen Dank für die Antwort :D
Leider funktioniert die Umstellung immer noch nicht :cry:
Übrigens sind die Daten in meiner Signatur aktuell.

Ich habe es wie folgt versucht:
  • 1. DB Dump übers Import Export Addon
  • 2. Stichprobe der Umlaute => alles Okay
  • 3. Encoding auf utf-8 umgestellt. Encoding Angabe auch auf utf-8 geändert und gespeichert (Nochmal Stichprobe => alles okay)
  • 4. Redaxo umgestellt auf utf-8
  • 5. Encodingangabe in meinem Template geändert auf utf-8
  • 6. Den neuen utf-8 DB Dump übers Import Export Addon importiert
  • => Die Umlaute werden im Frontend immernoch falsch angezeigt! :shock:
Was ich auch absolut nicht verstehe ist, dass in diesem auf utf umgestellten Redaxo auch Umlaute in neu erstellten Artikeln falsch angezeigt werden. :?: :!:

Ich weiß echt nichtmehr weiter.
Kann mir nochmal jemand weiterhelfen?

Grüße
Echi
Grüße
echi

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Bestehendes Projekt auf UTF 8 ändern

30. Jan 2012, 17:07

echi hat geschrieben:
  • 4. Redaxo umgestellt auf utf-8
Setup machen.. hat schon nen Grund, denn dort wird das generelle encoding der DB gesetzt..
aber eine Sache hab ich vergessen: in dem dump den du auf utf8 encoding umgestellt hast auch alle encoding Angaben für tables entsprechend ändern.. sprich von

Code: Alles auswählen

... DEFAULT CHARSET=latin1; 
nach

Code: Alles auswählen

... DEFAULT CHARSET=utf8; 
vg, Jan

Benutzeravatar
echi
Beiträge: 130
Registriert: 15. Aug 2011, 11:31
Wohnort: Engstingen

Re: Bestehendes Projekt auf UTF 8 ändern

30. Jan 2012, 17:30

Hi Jeandeluxe,

vielen Dank für die superschnelle Antwort, damit hätte ich ja garnicht gerechnet :D

Daran, dass man das Charset für jede Tabelle festlegen muss hab ich absolut nicht gedacht.
Macht aber Sinn...

Ich werde die Umstellung dann heute abend mal versuchen. Jetzt sind auf der Seite die "Inhaltsersteller" aktiv. Aber ich freu mich schon auf heute abend.... :)

Grüße
echi
Grüße
echi

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Bestehendes Projekt auf UTF 8 ändern

31. Jan 2012, 11:53

echi hat geschrieben:Daran, dass man das Charset für jede Tabelle festlegen muss hab ich absolut nicht gedacht.
Macht aber Sinn...
Jein.. bzw. eigentlich brauchts das nicht, denn wenn man wirklich ein Setup im utf8 Modus durchläuft, dann werden die zu importierenden dumps hinsichtlich charset Angaben für tables on thy fly gepatcht.. ich hatte es bloß nicht mehr so 100% auf dem Zettel und war dann etwas unsicher als du sagtest es ginge nicht. ;) D.h.: so wie ichs initial in meiner Auflistung beschrieben habe paßts.. nur muß mans eben wirklich so machen.. wenn man kein Setup durchläuft funktionierts nicht.
vg, Jan

Benutzeravatar
Markus.Staab
Entwickler
Beiträge: 9634
Registriert: 29. Jan 2005, 15:50
Wohnort: Aschaffenburg/Germany
Kontaktdaten: ICQ Website

Re: Bestehendes Projekt auf UTF 8 ändern

31. Jan 2012, 14:19

Hi!
echi hat geschrieben:Daran, dass man das Charset für jede Tabelle festlegen muss hab ich absolut nicht gedacht.
Macht aber Sinn...
Ich meine man kann das Charste in MySQL auch an der DB Instanz festlegen, dann sollte es für alle Tabellen autom. angenommen werden (ausser die Tabellen wurden explizit mit anderem Charset angelegt).

Gruß,
Markus

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Bestehendes Projekt auf UTF 8 ändern

31. Jan 2012, 14:54

Markus.Staab hat geschrieben:Ich meine man kann das Charste in MySQL auch an der DB Instanz festlegen, dann sollte es für alle Tabellen autom. angenommen werden (ausser die Tabellen wurden explizit mit anderem Charset angelegt).
Ja, das geschieht auch im 432 setup.. Robert & ich hatten da ja recht lang rumgefrickelt und überlegt wie man das so wasserdicht wie möglich hinbekommen dann. Und weil es aber u.U. sein kann - vermutl. selten aber dennoch - das jemand nicht die Rechte hat das default charset der DB selbst zu ändern, hat Robert dann noch zusätzlich/zur Sicherheit das on the fly patchen der table charsets eingebaut. Bei dem ganzen gings zwar primär darum die Konversion vom prä-43 utf8 (das in singlebyte zerlegte) in richtiges hinzubekommen, aber defakto greift das auch hier in dem Fall
vg, Jan

Benutzeravatar
echi
Beiträge: 130
Registriert: 15. Aug 2011, 11:31
Wohnort: Engstingen

Re: Bestehendes Projekt auf UTF 8 ändern

1. Feb 2012, 19:05

Vielen Dank für die hilfreichen Tipps.

Leider funktioniert meine Umstellung aber immer noch nicht :shock:

Ich habe ein Redaxo utf-8 Setup gestartet und meinen auf utf-8 getrimmten Dump wiedereingespielt. Mein Template habe ich geändert und in den Head

Code: Alles auswählen

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

Wenn ich nun neue Inhalte mit Umlauten erstelle, landen die zwar korrekt in der Datenbank, aber...

.... wenn ein Besucher auf die Seite geht, springt sein Browser automatisch auf ISO-8859 und die Umlaute werden falsch angezeigt.
Der Besucher kann jetzt die Anzeige in seinem Browser auf Unicode stellen und dann sieht die Seite wunderbar aus.
Wenn der Besucher auf einen Link klickt, stellt sich sein Browser wieder auf ISO um und die Umlaute sind wieder falsch.

Wenn ich mir das Backend im Firefox anzeigen lasse und mit "View Page Info" ansehe was der Server sendet steht da aber doch:

Code: Alles auswählen

Content-Type: text/html  charset=utf-8
Verstehe ich das HTML Encoding grundsätzlich nicht :?:

Kann ich als Webmaster denn garnicht bestimmen, mit welchem Encoding das Backend beim Besucher angezeigt wird? Ist dies etwa immer abhänging von der Browsereinstellung des Besuchers :shock:

Bitte, bitte helft mir weiter :D


Grüße
echi
Grüße
echi

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Bestehendes Projekt auf UTF 8 ändern

1. Feb 2012, 19:16

echi hat geschrieben:Verstehe ich das HTML Encoding grundsätzlich nicht :?:
Sprich backend paßt, DB paßt, frontend nicht? Dann versuchs mal hiermit: http://www.redaxo.org/de/forum/post97110.html#p97110
vg, Jan

Benutzeravatar
echi
Beiträge: 130
Registriert: 15. Aug 2011, 11:31
Wohnort: Engstingen

Re: Bestehendes Projekt auf UTF 8 ändern

2. Feb 2012, 00:21

Passt :D :D :D

Ein

Code: Alles auswählen

header('Content-Type: text/html; charset=UTF-8');
im Template war die Lösung.

Jetzt ist die Seite auf UTF-8 umgestellt und wird auch im Browser richtig angezeig.

Danke an Alle!
Grüße
echi

Benutzeravatar
echi
Beiträge: 130
Registriert: 15. Aug 2011, 11:31
Wohnort: Engstingen

Re: Bestehendes Projekt auf UTF 8 ändern

2. Feb 2012, 00:25

@Forenadmin:
den Thread hat jemand anderes gestartet, darum kann ich ihn nicht als '[gelöst] 'markieren.
Ich denke aber, jetzt könnte man ihn als gelöst markieren, da hier erklärt wird, wie man ein bestehendes Projekt auf UTF-8 ändert.
Grüße
echi

Zurück zu „Allgemeines [R4]“