Јуче ми се десило да су ми отказали сви стари скриптови са поруком „Error establishing a database connection“, док је управо инсталисани WordPress радио без проблема. Проверио сам конфигурационе фајлове појединих скриптова, сви су били нетакнути и са исправним подешавањима за базу. phpMyAdmin ради без проблема, значи да је MySQL сервер оперативан.
Углавном, после сат времена су ми у хостингу средили приступе бази из скриптова, али је „пукао“ mojblog.sajbernetiks.rs због промене кодног распореда у бази, пошто су га, приликом интервенције, пребацили са utf8_general_ci на latin1_swedish_ci и онда је сајт изгледао овако:

Прилично грозно, зар не?
После претраге разних решења и „решења“ на интернету, набасао сам на овај чланак: https://stackoverflow.com/questions/40036806/php-how-to-convert-unicode-to-russian-chacrters
и ту је било РЕШЕЊЕ. Кључна наредба је:
mb_convert_encoding($s, "Windows-1252", "UTF-8");
Онда је код за тестирање решења изгледао овако (у мом омиљеном CodeIgniter-u):
$query = $this->db->query("SELECT post_content FROM wp_posts");
foreach ($query->result() as $row);
{
$post_content = $row->post_content;
echo 'Pre izmene-'.$s
$n = mb_convert_encoding($s, "Windows-1252", "UTF-8");
echo 'Posle izmene-'.$n;
}
Што је приказало следеће:

Као што се види, ово решење ради. Сва поља прво треба пребацити на utf8_general_ci, мада је тренутни стандард utf8mb4_unicode_ci .
Остало је само да одрадим ту конверзију у свим табелама у којима се догодио, на први поглед, катастрофалан прелазак на други кодни распоред. Крајњи резултат је дат на слици доле, а можете и само да посетите сајт http://mojblog.sajbernetiks.rs/, биће ми драго:
