Raport z pola walki (może powinienem założyć bloga? ;P)
Po kolei:
KonwerterUTF8 przegryzł się po ponad 48 godzinach przez bazę (wg niego było to trochę ponad 21h, niech mu będzie - może jego real time i taki był).
Analiza tabel before/after daje zastanawiające wyniki. Otóż skrypt zmienił metodę porównania napisów z latin2_general_ci na utf8mb4_unicode_ci i plik db.opt w katalogu tej bazy (podejrzałem przez SSH) też z latin2_general_ci na utf8mb4_unicode_ci.
(before:
default-character-set=latin2
default-collation=latin2_general_ci)
(after:
default-character-set=utf8mb4
default-collation=utf8mb4_unicode_ci)
I NIC WIĘCEJ. Zrobiłem test, zamieniając phpMyAdminem collation z latin2_general_ci na utf8mb4_unicode_ci w 5 minut z dokładnie takim samym efektem jak konwerter w 2 dni.
Po podłączeniu tak skonwertowanej bazy do "starego" skryptu (3.4.5), Document character set w ACP: ISO-8859-2 jest tak samo jak przed konwersją, czyli dobrze.
No trochę mnie to zdziwiło, ale idę dalej, zmieniam Document character set w ACP na UTF-8 w i polskie znaki mam wyświetlane w najgorszy sposób, czyli za każdy polski znak wyświetlany jest "?". W tym ustawieniu wpisuję "Zażółć gęślą moją jaźń" oczywiście wyświetla się ok. Po ponownym ustawieniu ISO-8859-2, wszystko, za wyjątkiem "Zażółć gęślą moją jaźń" wygląda dobrze. A ta fraza wygląda jak poniżej.
Kolejny raz przestawiam charset w ACP, tym razem na utf8mb4 (!) i wszystko jest dobrze za wyjątkiem "jaźni", która, wpisana przy ustawieniu w ACP UTF-8, wygląda jak przy ISO-8859-2 czyli jak powyżej.
Problem jest, bo forum ma z 15 lat, z 1,5M postów, jeszcze więcej PM, statusy i co tam jeszcze. Ciągle brakło czasu, woli i motywacji do zmiany kodowania z ISO-8859-2 na UTF-8. A teraz jest problem. Gdzieś tu wcześniej chyba pisałem, w wersji 2.x.x. IPB polskie znaki zapisywały się w bazie jak... polskie znaki, czyli widać je jako... polskie znaki:
Od wersji 3.x.x. czyli od ponad 10 lat, zapisują w encjach (?), czyli wygląda to tak:
Głupich nie sieją</em>, <em>sami się rodzą
-tylko dlaczego encje źle się wyświetlają przy ustawieniu charsetów na UTF-8?
W tej chwili mam charsety w ACP ustawione na utf8mb4, w źródle strony widać to tak
<meta charset="utf8mb4" />
i jest dobrze, i zawartość lang strony wyświetlają się prawidłowo. Czy może mi ktoś powiedzieć jak mam kodowaną bazę? i jak się będzie wyświetlać po upgrade w nowej wersji forum 4.6.10?
Zgłupiałem, nie wiem, nie znam się, help!
Idę puścić upgradera, miałem nadzieję, że odśmiecę FTP-a, nagrywając do katalogu produkcyjnego tylko nowe pliki (zn. z 4.6.10) i katalog /uploads, ale czegoś jeszcze potrzebuje do życia, bo dostaję blank screena. Może powalczę z tym po udanym upgrade...