Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Probleme mit UTF-8
#1
Hallo,

ich hatte das schonmal im englischen Forum, eigentlich unter Bugs gepostet, dort wurde mein Posting aber kommentarlos in den allgemeinen Teil verschoben und niemand antwortet. Sad

Mein Posting im englischen Forum: http://community.mybboard.net/thread-40223.html

Vielleicht liegt es ja an meinem schlechten Englisch, daher dachte ich, ich versuche es mal hier. Blush

Ich möchte MyBB für ein mehrsprachiges Forum einsetzen. Das heißt ich brauche gute UTF-8 Unterstützung, damit z.B. deutsche Umlaute und japanische Schriftzeichen auf einer Seite funktionieren.

Das funktioniert beim MyBB von Haus aus eigentlich auch ganz gut, nur gibt es ein Feature, das hier dazwischenfunkt, und zwar das wordwrap (erzwungener Zeilenumbruch nach 80 Zeichen indem ein Leerzeichen eingefügt wird). Das ist ja eigentlich ein sehr sinnvolles Feature für den Fall daß jemand einen durchgehenden Text ohne Leerzeichen schreibt und damit das Forum-Layout zerschießt, wie z.B. in diesem BeispielBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeisBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeispielBeisBeispielBeispielBeispielBeispielBeispielBeispiel.

Der obige Beispieltext ist durchgehend geschrieben, aber MyBB fügt alle 80 Zeichen ein Leerzeichen ein, damit es trotzdem umgebrochen wird.

Wenn ich jetzt dasselbe aber mit UTF-8 Zeichen mache dann passiert das hier:

aäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜaäoöuüAÄOÖUÜ

Hier in diesem String mal auf die Stellen mit Leerzeichen achten, da fehlt ein ü, ein Ö, und ein ä. Nur mit Umlauten ist das natürlich ein blödes Beispiel, aber z.B. Japanisch wird durchgehend mit UTF-8 Zeichen geschrieben und da gehen dann auf einmal Zeichen kaputt.

Grund dafür ist daß die my_wordwrap() Funktion im MyBB die Leerzeichen einfach so in den String einfügt, ohne auf UTF-8 Zeichen zu achten, die aus mehreren Bytes bestehen. Wenn also das Leerzeichen mitten in eine UTF-8 Bytefolge reinkommt, geht das Zeichen dadurch logischerweise kaputt.

Was kann ich da jetzt noch tun? Einen Bug melden im englischen Forum habe ich versucht, der wurde kommentarlos weggeschoben. Bei anderen Open Source Projekten mit richtigem Bugtracker steht dann meistens wenigstens ein Kommentar drunter warum oder zumindest von wem der Fehler abgelehnt wurde.

Mein Workaround bisher ist das Feature einfach abzuschalten (obwohl es eigentlich sinnvoll ist) oder selber am Code rumzuspielen (meine Änderungen sind aber nicht sauber und gehen spätestens beim nächsten MyBB Update wieder verloren).

Irgendwelche Tips? ShyRolleyes
#2
Hier können wir dir wohl auch nicht so gut helfen. Das Problem scheint sehr komplex. Da sollten die Entwickler sich eigentlich drum kümmern.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
#3
Und wo kann ich die Entwickler kontaktieren?

Ich könnte das einfach nochmal im englischen Bugmelde-Forum posten. Das ist dann aber schon ziemlich frech. Wink
#4
Pragmatische Lösungen suchen? Dies ist vielleicht ein untauglicher Vorschlag,
doch wenn die Fehler nur bei bestimmten Sprachen und ohne Zeilenumbruch auftreten, könnte mit einer Editor-Hilfe-Anweisung geholfen werden. Einfach das Problem beschreiben und wie in der entsprechenden Sprache der Zeilenumbruch gestzt werden muss, damit das Resultat richtig aussieht? Natürlich nicht sehr elegant!

Falls untauglich, bitte diese Antwort wieder löschen.
#5
(09.11.2008, 16:19)cybercrash schrieb: bei bestimmten Sprachen und ohne Zeilenumbruch auftreten, könnte mit einer Editor-Hilfe-Anweisung geholfen werden

Das Problem dabei ist eben, daß manche Sprachen ihr eigenes Schriftsystem haben. Das aus dem lateinischen bekannte Leerzeichen oder . , kommt darin gar nicht vor, sondern z.B. Japanisch hat dafür seine eigenen Interpunktionszeichen, mal ein Beispiel (falls du eine japanische Schrift installiert hast):

「ひらがな カタカナ 漢字。、:!?」

Sogar das ganze Alphabet gibt es nochmal extra:

ABC statt ABC

Webbrowser verstehen das und brechen den Text einfach trotzdem ordentlich um, es ist also kein Fehler des Users, wenn da keine normalen Leerzeichen oder Punkte drin vorkommen, sondern die haben in japanischen Texten einfach nichts verloren.

Japanisch ist sicherlich ein Extrembeispiel, aber die Zeichen sollten ja eigentlich auch bei Umlauten nicht kaputt gehen.

Ich warte mal eine Woche ob im englischen Forum doch noch jemand antwortet, ansonsten poste ich den Bug einfach nochmal in dem Bug-Forum dort.
#6
Ich habe dein Thema zurückgeschoben, es als reproduzierbar markiert und die Information ergänzt, dass es auch bei Umlauten Probleme gibt.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#7
Vielen herzlichen Dank! Big Grin