« Project home page
my little forum
Log in
Register
Search:
Back to the entry by Auge
Post reply
Reply to the message by
Auge
Name:
E-mail:
(optional, won't be displayed directly)
Leave this field empty:
Homepage:
(optional)
Leave this field empty:
Location:
(optional)
Remember me (cookie)
Category:
General
Project organisation
Technics
Design/Themes
Features
Development
Todo
Bugs
German / Deutsch
Spanish / Español
French / Français
Accessibility/UX
Subject:
Formatting help
skip to input
format text bold
[b]bold text[/b]
format text italic
[i]italic text[/i]
insert hyperlink
[link=http://example.com/]link text[/link] / [link]http://example.com/[/link]
set text color
[color=#rgb]colored text[/color]
font size
[size=small]small text[/size]
[size=large]large text[/size]
insert list
[list][*]list item[/list]
insert image
[img]http://example.com/image.jpg[/img]
left: [img=left]http://example.com/image.jpg[/img]
right: [img=right]http://example.com/image.jpg[/img]
thumbnail: [img=thumbnail]http://example.com/image.jpg[/img]
thumbnail left: [img=thumbnail-left]http://example.com/image.jpg[/img]
thumbnail right: [img=thumbnail-right]http://example.com/image.jpg[/img]
upload image
upload image ...
insert TeX code
[tex]TeX code[/tex]
insert code
[inlinecode]code[/inlinecode]
[code]code[/code]
[code=css]code[/code]
[code=html]code[/code]
[code=javascript]code[/code]
[code=perl]code[/code]
[code=php]code[/code]
[code=sql]code[/code]
[code=xml]code[/code]
:-)
;-)
:-P
:-D
:-|
:-(
:yes:
:no:
:ok:
:lol:
:lol2:
:lol3:
:cool:
:surprised:
:angry:
:crying:
:waving:
:confused:
:lookaround:
:clap:
:love:
:tick:
Message:
> Hallo > > Ich habe mich mal wieder mit dem Thema beschäftigt. > > > Ganz so einfach scheint das nicht zu sein. > > > > Die Tests haben bisher folgendes ergeben: > > > > - Änderung der Spaltenkodierung für die Felder [inlinecode]mlf2_entries[/inlinecode] und [inlinecode]mlf2_entries_cache[/inlinecode]: [b]erfolglos[/b] > > - Änderung der Tabellenkodierung und -kollation gemäß [link=https://stackoverflow.com/questions/20411440/incorrect-string-value-xf0-x9f-x8e-xb6-xf0-x9f-mysql#20429481]dieses StackOverflow-Threads[/link] (nur auf Tabellen- statt Datenbankebene): [b]erfolglos[/b] > > Soweit ich mir mittlerweile angelesen habe, muss folgende Kette stehen. > > - Kodierung der Datenbank: [inlinecode]utf8mb4[/inlinecode], Kollation: [inlinecode]utf8mb4_unicode_ci[/inlinecode] > - Kodierung der Tabellen: [inlinecode]utf8mb4[/inlinecode], Kollation: [inlinecode]utf8mb4_unicode_ci[/inlinecode] > - Kodierung der (gewünschten) Felder: [inlinecode]utf8mb4[/inlinecode] oder [inlinecode]utf8mb4_bin[/inlinecode], Kollation: [inlinecode]utf8mb4_unicode_ci[/inlinecode], [inlinecode]utf8mb4_generaql_ci[/inlinecode] oder [inlinecode]utf8mb4_bin[/inlinecode] (je nach Anwendungsfall) > > Hintendran die schon erwähnte Einstellung für die Verbindung selbst. > > > Wie in dem verlinkten StackOverflow-Thread in mehreren Einlassungen zu lesen ist, muss auch die Datenbankverbindung mit der Kodierung [inlinecode]utf8mb4[/inlinecode] hergestellt werden. > > Wie gesagt. > > > Wenn die Verbindung mit [inlinecode]utf8mb4[/inlinecode] erfolgt, aber die Tabellen eventuell nur [i]teilweise[/i] in [inlinecode]utf8mb4[/inlinecode] aber einige "nur" in [inlinecode]utf8[/inlinecode] vorliegen, könnten Inkompatibilitäten auftreten. > > Das wiederum schließen die gelesenen Artikel aus, da ... > > > Es bleibt daher zusätzlich zu prüfen, ob [inlinecode]utf8[/inlinecode] für MySQL ein echtes Subset von [inlinecode]utf8mb4[/inlinecode] ist > > ... diese Frage eindeutig mit [i][b]ja[/b][/i] beantwortet wird und ... > > > oder ob alle Tabellen und alle Textfelder umgestellt werden müssen. > > ... diese Fragestellung mit nein beantwortet werden kann. Es müssen nur die Felder, die UTF8 mit vier Byte speichern sollen, auf diese Kodierung umgerüstet werden. > > Dabei sind aber ein paar Dinge zu beachten. > > [b]1. Der MySQL-Server[/b] > > Der MySQL-Server muss mindestens in der Version 5.5.3 laufen. Vorher gab es schlicht kein [inlinecode]utf8mb4[/inlinecode]. > > [b]2. Zugriff auf bestimmte Einstellungen[/b] > > Es ist mehr als fraglich, ob ein Nutzerskript die Kodierung des Servers umstellen darf, wenn der Server nicht unter der Kontrolle des Forenbetreibers steht (Beispiel Shared Hosting). An der Stelle wäre ein Update nur möglich, wenn der Hoster das von sich aus oder auf Nachfrage so einrichtet. > > [b]3. unerwartete Einschränkungen[/b] > > Ein Textfeld mit der Definition [inlinecode]varchar(255)[/inlinecode] kann in einer 1-Byte-Kodierung (wie z.B. ISO-8859-15) 255 Schriftzeichen aufnehmen, verbraucht aber pro mehrbytigem Zeichen die entsprechende Anzahl von Stellen. Das heißt, dass schon jetzt bei Verwendung von außereuropäischen Schriftzeichen, die zwei oder drei Bytes einnehmen, nicht die erwartete volle Länge von 255 Zeichen zur Verfügung steht. Ein Betreff, nur aus Emojis bestehend, könnte bei einer Feldlänge von 255 nur aus maximal 63 Zeichen bestehen (255/4 = 63.75 ≈ 63). > > Zudem beträgt die Länge eines Indexes für Tabellen vom Typ InnoDB bis MySQL 5.7 nur 768 Byte. Das entspricht nur der dreifachen Länge von [inlinecode]varchar(256)[/inlinecode] und könnte im Zweifelsfall ein voll ausgenutztes Feld nicht im Index abbilden, wenn der Inhalt nur aus 4-bytigen UTF-8-Zeichen bestünde. > > Meine Lektüre: > > https://stackoverflow.com/questions/30074492/what-is-the-difference-between-utf8mb4-and-utf8-charsets-in-mysql#30074553 > https://www.eversql.com/mysql-utf8-vs-utf8mb4-whats-the-difference-between-utf8-and-utf8mb4/ > https://mathiasbynens.be/notes/mysql-utf8mb4 > https://dev.mysql.com/doc/refman/5.7/en/charset.html > > Tschö, Auge
E-mail notification on reply of this posting
OK - Submit
Preview