Author Topic: WebsiteBaker und Chinesisch  (Read 9426 times)

slackfan

  • Guest
WebsiteBaker und Chinesisch
« on: March 15, 2007, 07:39:33 AM »
Hallo,

ich bastele an einer multilingualen Website und bekomme es nicht hin, Seiten mit chinesischen Zeichen im Namen anzulegen.

Wenn ich z.B. 版权声明 (das bedeutet Impressum) als Seitentitel vergeben will, gibt er lediglich zurück:
Quote
Eine Seite mit einem ähnlichen oder demselben Titel existiert bereits
Obwohl das nicht der Fall ist.

Wie lässt sich dieser Missstand beheben und woran könnte das liegen?

Mit besten Grüßen
Slackfan

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8383
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: WebsiteBaker und Chinesisch
« Reply #1 on: March 15, 2007, 08:58:39 AM »
Hallo,

lies dir bitte das hier durch, das erklärt alles:

http://forum.WebsiteBaker.org/index.php/topic,4964.0.html

Dein Problem ist die convert.php und UTF8. Beim Anlegen der Seiten werden (schau bitte in der Datenbank nach) die Seitennamen falsch convertiert und als E4E4E4.... gespeichert. Deswegen bekommst du den Hinweis dass eine Seite mit dem Namen bereits existiert.

Matthias

slackfan

  • Guest
Re: WebsiteBaker und Chinesisch
« Reply #2 on: March 15, 2007, 09:36:30 AM »
Funktioniert!

Danke schön.

slackfan

  • Guest
Re: WebsiteBaker und Chinesisch
« Reply #3 on: March 15, 2007, 10:09:08 AM »
Fast :-/

Der Text Impressum (版权声明) hat die Zeichenkodierung 版权声明 leider steht das auch genau so in der Überschrift da. Im Fließtext wandelt er die Zeichen dagegen korrekt um.

Weiß jemand wo man die Umwandlung des kaufmännischen Und von & in & für die Überschriften deaktivieren kann?

Mit besten Grüßen
Slackfan

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8383
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: WebsiteBaker und Chinesisch
« Reply #4 on: March 15, 2007, 11:33:22 AM »
Hallo,

spricht du jetzt vom Menü oder sprichst du vom Contenbereich?

Menü: siehe vorher geposteten link.

Content: Das hängt von deinem WYSIWYG Editor ab. HTMLArea macht ein heilloses durcheinander, FCKEditor und XINHA können entweder für das eine (Htmlentities ü = ü) oder das andere ( ü = ü) eingestellt werden. In der momentanen Standardconfig ist es leider auch noch ein bisschen gemixt.

Matthias

Offline thorn

  • Posts: 980
  • Gender: Male
    • Projects
Re: WebsiteBaker und Chinesisch
« Reply #5 on: March 18, 2007, 10:17:34 AM »
Hallo,

Der Text Impressum (版权声明) hat die Zeichenkodierung 版权声明 leider steht das auch genau so in der Überschrift da. Im Fließtext wandelt er die Zeichen dagegen korrekt um.

Weiß jemand wo man die Umwandlung des kaufmännischen Und von & in & für die Überschriften deaktivieren kann?

Schuld daran ist der exessive Gebrauch von htmlentities()...

Als Lösungsansatz bieten sich zwei Möglichkeiten an:
- so gut wie alle htmlentites weg (vorallem aus wb/admin/pages/* und wb/framework/class.frontend.php)
oder, wenn die Kodierung notwendig ist (IST SIE DAS? WARUM?)
- die htmlentities()-Aufrufe in eine mb_convert_encoding()/htmlspecialchars()/mb_convert_encoding()-Kaskade ändern.

Ich habe mal die wb/framework/class.frontend.php nach der zweiten Möglichkeit angepaßt.
Nun werden menu_title und page_title nicht mehr verunstaltet. -- bitte mal testen.
Als nächstes müsste man dann wb/admin/pages/* entsprechend überarbeiten...

Einfacher wäre es, die ganzen htmlentites()-Aufrufe raus zu nehmen. (Warum sind die nochmal gleich drin?)

MfG, Thomas

PS: Die convert.php spieltab dieser Stelle nicht mit rein.
« Last Edit: April 10, 2007, 10:26:48 PM by thorn »

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8383
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: WebsiteBaker und Chinesisch
« Reply #6 on: March 20, 2007, 08:46:30 AM »
Hallo,

Quote
Einfacher wäre es, die ganzen htmlentites()-Aufrufe raus zu nehmen. (Warum sind die nochmal gleich drin?)

Darum:
http://projects.WebsiteBaker.org/websitebaker2/ticket/287

Frage:
Gibt es eine Lösung, die sowohl das angesprochene ticket287 löst, als auch dafür sorgt, dass sowohl bei UTF8 Seiten als auch bei ISO-xxxx Seiten der Menütitel und Seitentitel richtig in der Datenbank gespeichert wird und im Frontend richtig angezeigt wird und die abwärtskompatibel zu WB 2.6.4 Seiten ist.

Matthias
« Last Edit: March 20, 2007, 08:53:41 AM by ruebenwurzel »

slackfan

  • Guest
Re: WebsiteBaker und Chinesisch
« Reply #7 on: March 20, 2007, 12:42:39 PM »
Danke für Bemühung.
Wenn ich die Bibliothek von thorn benutze bekomme ich wieder die erste Fehlermeldung.
Werde mich wohl auch mal in die Tiefen der Programmierung begeben müssen.
Habe gehofft, dass vermeiden zu können  :-D

cu

Offline thorn

  • Posts: 980
  • Gender: Male
    • Projects
Re: WebsiteBaker und Chinesisch
« Reply #8 on: March 20, 2007, 06:55:51 PM »
Danke für Bemühung.
Wenn ich die Bibliothek von thorn benutze bekomme ich wieder die erste Fehlermeldung.
Werde mich wohl auch mal in die Tiefen der Programmierung begeben müssen.
Habe gehofft, dass vermeiden zu können  :-D
Was für eine Convert.php benutzt du? Und was für ein System (ISO-... oder UTF-8)?

Wenn Du eine convert.php benutzt, die nur die Standard-Umlaute enthält ("ä"=>"ae",...) sollte WB die Chinesischen Zeichen (die intern als 版 ... dargestellt werden) in einen Dateinamen der Art: 2925626435227682612 6.php verwandeln. Sprich, WB entfernt alle HTML-typischen Zeichen und behält die ganzen Zahlen. Und das sollte schon eindeutig sein.
In einer UTF-8- Umgebung könnte das anders sein... Muß ich noch mal testen.

MfG, Thomas

Update: bei mir funktioniert das so, siehe http://nettest.thekk.de/
hmm, allerdings nur wenn ich latin-1 benutzte...
« Last Edit: March 20, 2007, 08:56:18 PM by thorn »

Offline thorn

  • Posts: 980
  • Gender: Male
    • Projects
Re: WebsiteBaker und Chinesisch
« Reply #9 on: March 20, 2007, 08:55:07 PM »
Frage:
Gibt es eine Lösung, die sowohl das angesprochene ticket287 löst, als auch dafür sorgt, dass sowohl bei UTF8 Seiten als auch bei ISO-xxxx Seiten der Menütitel und Seitentitel richtig in der Datenbank gespeichert wird und im Frontend richtig angezeigt wird und die abwärtskompatibel zu WB 2.6.4 Seiten ist.

Der schnelle Hack von oben funktioniert unter UTF-8 nicht (weil ich page_title und menu_title nur im Moment des Anzeigens verändere, und die verwendete Konvertierung funktioniert in dem Fall nicht.)
Ich müßte stattdessen schon in wb/admin/pages/* bei der Erstellung eingreifen. Dann würden die beiden Einträge immer mit named/numbered-entities in die Datenbank geschrieben, und würden beim Anzeigen automatisch immer richtig angezeigt, unabhängig vom eingestellten Charset).

Zu deiner Frage:
ticket287: kein problem, da man sowieso konvertierer muß, kann man das gleich mitmachen.
ISO-xxxx-Seiten: Funktioniert bereits. Siehe http://nettest.thekk.de/
UTF-8-Seiten: hmm, ich denke, wenn ich jeweils prüfe welcher Charset in WB eingestellt ist, und dann entsprechend konvertiere sollte das auch gehen.
abwärtskompatibel zu WB 2.6.4-Seiten: oohh... 2.6.4 kenne ich nicht. Aber die Lösung die mir vorschwebt würde nur bei der Erstellung oder Änderung von Seiten eingreifen, sodaß bestehende Seiten wie gewohnt angezeigt werden sollten...

Ich werde mal was in die Richtung versuchen...

MfG, Thomas

PS: um mal etwas von dem chinesich wegzukommen: Dieses Problem betrifft auch viele Sonderzeichen z.b. aus Lettland, Estland, Litauen, Rumänien, Tschechien, Kroatien,...

slackfan

  • Guest
Re: WebsiteBaker und Chinesisch
« Reply #10 on: March 21, 2007, 11:38:27 AM »
Hallo,

ich benutze in der Tat durchgehend utf-8, weil ich mir dachte das wäre gerade für mehrsprachliche/-schriftliche Seiten sinnvoller.

Die Seiten legt er mit der unmodifizierten class.frontend.php nach dem von thorn beschriebenen Schema ab, aber erst nachdem ich die gepatchte convert.php von ruebenwurzel benutze.

Ich bin jetzt ziemlich verwirrt, vor allem weil das bei thorn so gut funktioniert. Ist es jetzt das beste, die Site auf iso-8859-1 umzustellen, oder WebsiteBaker so zu patchen, dass er die Entitäten bei der Ausgabe nicht parst :?

Offline thorn

  • Posts: 980
  • Gender: Male
    • Projects
Re: WebsiteBaker und Chinesisch
« Reply #11 on: March 21, 2007, 06:55:01 PM »
 :-D

Hallo,

ich würde WB auf ISO-8859-1 einstellen und die Datei von oben austauschen wenn es dringend ist.
Wenn es nicht so dringend ist, warte lieber noch bis nächste Woche. Bis dahin habe ich hoffentlich eine bessere Lösung.

MfG, thorn.

slackfan

  • Guest
Re: WebsiteBaker und Chinesisch
« Reply #12 on: March 22, 2007, 10:08:15 AM »
Alles klar,

dann würde ich noch ein bisschen warten  :-)

thx slackfan

Offline thorn

  • Posts: 980
  • Gender: Male
    • Projects
Re: WebsiteBaker und Chinesisch
« Reply #13 on: March 22, 2007, 10:06:46 PM »
So...

ich hab hier mal eine Version zum testen. - Einfach die Dateien austauschen. ABER BITTE NICHT IM PRODUKTIVSYSTEM! Erstmal in einem Testsystem probieren, insbesondere die Auswirkung auf bestehende Seiten und Bilder in wb/media.
Der eingestellte Charset ist egal.

Die wesentlichsten Änderungen:

- in wb/framework/functions.php die Funktionen to_entities() und entities_to_7bit() hinzu.
- page_title und menu_title werden nun grundsätzlich durch to_entities() mit html_entities angelegt (dabei wird auch ticket287 beachtet).
- in wb/admin/pages/*, wb/framework/class.frontend.php und frontend.functions. php die Aufrufe von htmlentities() entfernt.
- Änderungen an page_filename() und media_filename(): der Dateiname wird nun mit Hilfe von entities_to_7bit() erzeugt; die convert.php wird nur noch für 'kosmetische' Änderungen benutzt (Umwandlung von verschiedenen numbered_entities, die ich mit entities_to_7bit() nicht erwische).
- search.php: bugfix: suche funktionierte mit UTF-8 nicht.

MfG, Thomas

Edit 23.03.2007: Aua, da hat sich aber ein böser Fehler eingeschlichen! Anhang erstmal eingezogen -- muß ich erst reparieren...
« Last Edit: March 23, 2007, 06:34:29 PM by thorn »

doc

  • Guest
Re: WebsiteBaker und Chinesisch
« Reply #14 on: March 23, 2007, 06:40:06 AM »
Cool,

werde ich heute mal testen  :-)
Danke für die bisher investierte Arbeit.

Gruss Christian

Offline thorn

  • Posts: 980
  • Gender: Male
    • Projects
Re: WebsiteBaker und Chinesisch
« Reply #15 on: March 23, 2007, 07:04:16 PM »
Hallo,

so, erster bugfix

Änderungen:
- bugfixes.
- wb/admin/pages/settings2.php: Konvertierung von page_title und menu_title durch to_entities() hinzu.
- in wb/admin/pages/add.php und settings2.php die Aufrufe von page_filename() soweit wie möglich reduziert. (ich denke die vielen dadurch bediengten Aufrufe von preg_replace() verlangsamen den Ablauf deutlich).

MfG, thorn
« Last Edit: April 10, 2007, 10:27:37 PM by thorn »

Offline thorn

  • Posts: 980
  • Gender: Male
    • Projects
Re: WebsiteBaker und Chinesisch
« Reply #16 on: March 28, 2007, 07:18:02 PM »
Hallo,

ich habe diese Variante jetzt soweit fertig. (Testsystem siehe http://nettest.thekk.de )

- Die Änderungen laufen auch mit bestehenden Datenbanken; es ist keine Konvertierung nötig.
- Sie Funktionieren mit jedem(!) Charset.
- page_title und menu_title können nun Sonderzeichen/Umlaute enthalten (nur die Sonderzeichen, die zum eingestellten Charset gehören; aber das war bisher auch so).
- bugfix an der Such-Funktion (funktionierte nicht wie gewollt unter verschiedenen Charsets).
- Unabhängig vom eingestellten Charset werden immer eindeutige Dateinamen erstellt; es sind keine Anpassungen an der convert.php mehr nötig. Zudem sind, zumindest im latin-block, die Dateinamen lesbar: 'Tür' wird zu 'tuer', 'Česky' wird zu 'cesky'; d.h. alle Zeichen, die eine 7bit-Entsprechung haben, werden auf diese abgebildet. Andere werden als Name übernommen: '€' wird zu 'euro', 'Ω' wird zu 'omega'. Und die gut 50.000 anderen Zeichen aus dem utf-8-Bereich werden als Zahl (aus der numbered-entitiy) übernommen: "Jetzt mal 日本語" wird zu "jetzt-mal-260852641235486.php".

Bei Neuinstallationen empfehle ich den Charset auf der Standard-Einstellung von WB, nämlich 'UTF-8', zu lassen, damit funktioniert das am besten.

Die Erzeugung von Dateinamen ist kompatibel zur alten Lösung, so das auch dort keine Probleme zu erwarten sind.

MfG, thorn

PS: Hallo slackfan, probiere das doch jetzt bitte mal aus, mit Charset UTF-8.

Edit: aktuelle Fassung siehe weiter unten.
« Last Edit: April 10, 2007, 10:28:34 PM by thorn »

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8383
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: WebsiteBaker und Chinesisch
« Reply #17 on: March 29, 2007, 09:23:20 AM »
Hallo,

na das sieht ja mal richtig gut aus  :-D.

Folgende Fragen:
1. Können wir damit auf die convert.php komplett verzichten?
2. Wenn nicht, deckt deine so gut wie alles ab, oder muss da noch was hinzugefügt werden (russisch?, griechisch?
3. Funktioniert deine Lösung unabhängig vom charset der Datenbanken?
4. Muss an den Mindestanforderunge n von Wb was geändert werden (php version!)?
5. Hast du alle htmlentites von http://projects.WebsiteBaker.org/websitebaker2/changeset/396 wieder entfernt?

Bitte um kurze Antwort. Auf deiner Testseite sieht alles super aus. Je nach deinen Antworten werde ich deine Lösung dann in die SVN für die Version 2.6.6 mit aufnehmen.

Danke für deine Arbeit

Matthias

Edit:
Also hab das jetzt mal auf die schnelle hier im Geschäft probiert. Da funktioniert mit ISO-8859-1 alles wie erwartet, wenn ich aber unter UTF8 eine Seite mit Umlauten anlegen, werden die Umlaute einfach aus dem Dateinamen herausgenommen. Ein Seitenname "äöü" ist nich möglich von "testäöü" wird nur "test" angenommen.
« Last Edit: March 29, 2007, 02:06:45 PM by ruebenwurzel »

Offline thorn

  • Posts: 980
  • Gender: Male
    • Projects
Re: WebsiteBaker und Chinesisch
« Reply #18 on: March 29, 2007, 05:48:29 PM »
Also hab das jetzt mal auf die schnelle hier im Geschäft probiert. Da funktioniert mit ISO-8859-1 alles wie erwartet, wenn ich aber unter UTF8 eine Seite mit Umlauten anlegen, werden die Umlaute einfach aus dem Dateinamen herausgenommen. Ein Seitenname "äöü" ist nich möglich von "testäöü" wird nur "test" angenommen.

Also der einzige Unterschied in dem Fall zwischen ISO-8859-1 und UTF-8 ist, das sich in
Code: [Select]
$string=mb_convert_encoding($string,'HTML-ENTITIES',$charset); der $charset ändert.
Wird denn der menu_title oder page_title richtig angezeigt, und nur der Dateiname stimmt nicht?
 :?
Wie hast Du das System installiert? Original wb2.6.5 und dann die geänderten Dateien eingespielt? Oder bestehendes System? Version? Änderungen an der Datenbank von Hand? Andere Änderungen an WB?
Und vor allem welche PHP-Version? auf Linux oder Windows? Und wie sieht das Configure Command aus? ('--enable-mbstring' sollte vorhanden sein).

MfG, thorn

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8383
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: WebsiteBaker und Chinesisch
« Reply #19 on: March 29, 2007, 06:39:56 PM »
Hallo,

habs jetzt auch nochmal daheim getested, mit ganz anderen Ergebnissen (andere php Version).

Apache 2.0.59, Mysql 5.0.27, PHP 5.2.1. Datenbanken charset Latin_swedish_ci.
Standard WB Installation, nur deine Dateien ausgetauscht.
WB charset UTF8:
Seiten mit Umlauten können angelegt werden, werden im Menü(frontend und backend) richtig angezeigt, der link wird richtig convertiert, allerdings stehen in der Datenbank in der Pages tabelle bei page_title und menu_title nur hyroglyphen.

Apache 2.0.59, Mysql 4.0.26, PHP 5.2.1
Standard WB Installation, nur deine Dateien ausgetauscht.
WB charset UTF8:
Beim Anlegen der Seiten werden die Umlaute aus den Dateinamen entfernt.

Hoffe das hilft dir weiter.

Matthias

Offline thorn

  • Posts: 980
  • Gender: Male
    • Projects
Re: WebsiteBaker und Chinesisch
« Reply #20 on: March 29, 2007, 07:47:29 PM »
allerdings stehen in der Datenbank in der Pages tabelle bei page_title und menu_title nur hyroglyphen.
Ja, das ist ein Design-Fehler in WB. Das habe ich im Thread "WB 2.6.5 und UTF-8" doch erklärt:
Da in WB beim Verbindungsaufbau weder der client-charset noch die zu benutzende collation an mysql gemeldet wird, führt mysql immer eine Konvertierung [latin1->utf8] aus. Und wenn man UTF-8 so verbiegt, kommt halt nichts lesbares dabei heraus. Das das trotzdem funktioniert, liegt daran, daß mysql die Konvertierung beim Senden von Daten rückgängig macht. Das gilt für jeden Charset ungleich latin1.
Ich habe letztlich nicht mehr näher Untersucht, ob man wirklich beim Anlegen der Datenbank die collation auf utf8 setzten muß, oder ob es nicht auch reicht, beim Aufbau der Verbindung die Daten zu setzen, (in der class database, function connect, nach Verbindungsaufbau):
Code: [Select]
    } else {
        $this->connected = true;
        mysql_query("SET character_set_client=$wb_charset");
        mysql_query("SET character_set_results=utf8");
        mysql_query("SET collation_connection=utf8_unicode_ci");
    }
weil daß so oder so große Änderungen nach sich zieht:
-Bestehende Datenbanken müssen konvertiert werden!
-DEFAULT_CHARSET steht in der class database nicht zur Verfügung - muß man dort erst irgendwie verfügbar machen.

Aber ich schweife vom Thema ab:
mysql hat mit der Erstellung des Dateinamens nun wirklich garnichts zu tun. Kannst Du mal gucken ob das PHP auf dem System mit mysql4 mb-string Unterstützung hat (phpinfo)?

Ich werde die Funktionen die bei der Erzeugung des Dateinames eingesetzt werden mal Schritt für Schritt untersuchen - vielleicht ergibt sich dabei ja noch was.

MfG, thorn

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8383
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: WebsiteBaker und Chinesisch
« Reply #21 on: March 29, 2007, 08:05:04 PM »
Hallo,

Quote
Ja, das ist ein Design-Fehler in WB. Das habe ich im Thread "WB 2.6.5 und UTF-8" doch erklärt:

Jetzt wo du es sagst, fällt es mir wie Schuppen von den Augen. Stimmt du hast das in diesem thread ausführlich erklärt und ob mit oder ohne deine Änderungen bekommt man dasselbe Ergebnis.

Quote
Ich habe letztlich nicht mehr näher Untersucht, ob man wirklich beim Anlegen der Datenbank die collation auf utf8 setzten muß

Sollte langfristig (WB 2.7 ?) das Ziel sein. Da WB 2.7 mit einem Updatescript ausgestattet sein wird kann man die Konvertierung der Datenbanken nach UTF8 ja ebenfalls in die Planung mit aufnehmen.

Quote
Kannst Du mal gucken ob das PHP auf dem System mit mysql4 mb-string Unterstützung hat (phpinfo)?

Morgen auf der Arbeit ja. Denke aber mal, weil es sich dabei um eine total selbst konfigurierte Installation handelt, dass mb-string bei den extensions in der php.ini wohl eher nicht aktiviert ist. Sag dir dann Bescheid.


Gib bitte nochmal ne kurze Info zu den Fragen, die ich weiter oben gestellt habe. Oder anders herum, was kann passieren, wenn wir deine geänderten Dateien in die Corefiles mit aufnehmen?

Matthias

Offline thorn

  • Posts: 980
  • Gender: Male
    • Projects
Re: WebsiteBaker und Chinesisch
« Reply #22 on: March 29, 2007, 09:55:28 PM »
Folgende Fragen:
1. Können wir damit auf die convert.php komplett verzichten?
2. Wenn nicht, deckt deine so gut wie alles ab, oder muss da noch was hinzugefügt werden (russisch?, griechisch?
3. Funktioniert deine Lösung unabhängig vom charset der Datenbanken?
4. Muss an den Mindestanforderunge n von Wb was geändert werden (php version!)?
5. Hast du alle htmlentites von http://projects.WebsiteBaker.org/websitebaker2/changeset/396 wieder entfernt?
1- Nein, ich habe das sogar von meinem ersten Entwurf dahingehend 'zurückgebaut' das ausschließlich die convert.php benutzt wird. Die Neuerung ist, daß nun eine convert.php für alle Charsets paßt.
2- Also kyrillisch und griechisch habe ich gerade ergänzt. Die Blöcke Lateinisch, Lat-Erweitert, Lat-Ergänzt-A funktionieren. Morgen ergänze ich noch den Block Lat-Ergänzt-B, obwohl der nun wirklich sehr exotische ist. Weitere Vorschläge nehme ich gerne an. Es gibt aber Fälle in denen eine Konvertierung einfach nicht möglich ist (UTF-8 hat derzeit gut 60.000 Zeichen, BIG-5 13.000, ISO-2022-JP 7000 ...), das sind praktisch alle asiatischen Sprachen, dazu hebräisch, arabisch.
Aber alle Sprachen, die lateinische Zeichen benutzen, funktionieren.
3- Wenn man den charset der Datenbank oder den von WB ändert, wird sowieso nichts mehr richtig angezeigt. (Aber das ist der Design-Fehler...).
4- nicht das ich wüßte. Laut PHP-Doku und mysql-Doku sehe ich da keine Probleme.
5- ja

Wenn man die geänderten Dateien in ein bestehendes System bringt, läuft erst mal alles weiter wie gehabt. Bestehende Seiten behalten ihren Namen und werden wie bisher angezeigt.
Es gibt aber einen denkbaren Fall der leichte Probleme machen könnte:
--  Der User hat eine Seite mit einem exotischen Titel (mit Sonderzeichen weit jenseits der normal öäü...)  und eine weitere Seite in der im content ein 'hart-kodierter' Link auf die vorgenannte Seite zeigt.
Wenn er nun die Seitenoptionen aufruft, dort etwas ändert und speichert werden page_title und menu_title der Seite neu generiert. Dabei kann es passieren, daß die Seite einen etwas anderen Dateinamen bekommt, er also den Link auch ändern muß.
Ich habe allerdings die neue Funktion kompatible zur alten gehalten, so daß das im 'europäischen'-Sprachraum nicht passieren sollte. Für andere 'Sprachräume' weiß ich nicht wie dort die Dateinamen erstellt wurden (bei BIG-5, ISO-2022-JP, oder ähnlich), da wird der neu generierte Name wohl immer abweichen. Das Problem kommt aber nur bei 'hard-kodierten' Links zum tragen.

MfG, thorn


Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8383
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: WebsiteBaker und Chinesisch
« Reply #23 on: March 30, 2007, 05:43:13 AM »
Hallo,

also wenn deine convert.php dann soweit vollständig ist werde ich die Änderungen in die Core Files übernehmen.

In der class.frontend.php haben wir auch noch einige "htmlentities" stehen. Können die dann auch raus?.

Matthias

Offline thorn

  • Posts: 980
  • Gender: Male
    • Projects
Re: WebsiteBaker und Chinesisch
« Reply #24 on: March 31, 2007, 06:59:05 PM »
Hallo,

hier also die endgültige Fassung.

Änderungen:
- Die htmlentities aus changeset 396 sind entfernt.
- Ein paar Probleme mit Suche/Highlighting behoben bei UTF-8, und bei 'exact-match'
- Neues (kompatibles) Verfahren zur Erzeugen des Dateinamens für Pages und Media.
- Erzeugung von page_title und menu_title überarbeitet.

Ich würde empfehlen, bei einer Neuinstallation den charset in WB auf UTF-8 stehen zu lassen.

MfG, thorn

PS:
Hint: Um eine bestehende Datenbank, die mit ISO-8859-1 (in WB) erstellt wurde, nach UTF-8 (Einstellung in WB wohlgemerkt) umzuwandeln, reicht es, den Dump mit Hilfe von z.B. iconv zu konvertieren:
Code: [Select]
iconv -c -f CP1252 -t UTF-8 wb.sql > wb_conv.sql

Edit: aktuelle Fassung siehe weiter unten.
« Last Edit: April 10, 2007, 10:29:53 PM by thorn »