Php + Mysql (UTF-8) некоторые персонажи все еще баг
Ну, я получил скрипт php, который берет псевдонимы из веб-API Steam и вставляет их в базу данных mysql. Многие из них получили редкие русские и греческие символы. Я устанавливаю php в utf-8 в php.ini и во всех файлах php с
mb_internal_encoding('utf-8');
Мой разъем PDO настроен для обработки utf8
$connection = new PDO('mysql:host=localhost;dbname=d2bd;mysql:charset=utf8mb4', 'root', '');
$connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$connection->setAttribute(PDO::ATTR_PERSISTENT, true);
$connection->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci'");
мой MySQL базы данных правильно настроен с utf8mb4
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_filesystem binary
character_set_results utf8mb4
character_set_server utf8mb4
character_set_system utf8
character_sets_dir C:\xampp\mysql\share\charsets\
collation_connection utf8mb4_unicode_ci
collation_database utf8mb4_unicode_ci
collation_server utf8mb4_unicode_ci
completion_type NO_CHAIN
concurrent_insert AUTO
connect_timeout 10
core_file OFF
В нескольких словах я беру ввод web-api и кодирую его с помощью uft8_encode (). Затем я вставляю его в БД. Проблема в том, что некоторые символы не очень хорошо закодированы, и когда я вызываю их из базы данных, все они прослушиваются.
Пример 1:
1.Вход -> Перуанский чертовски
2.Encode -> ÐеÑÑÐ ° нÑкий ÑеÑÑовÑки
3. Вставить в БД
4.Выберите из БД -> Ð? еÑ? Ñ? Ð ° нÑкий Ñ? еÑ? Ñ? овÑкÐ
5.Decode
6.Выход -> ? Е ? ? Анский ? Е ? ? Овск
Пример 2:
1.Вход -> $ | / | 1 ↓ _ € ♥ J
2.Кодировать -> $ | / | 1 â_ ⬠⠥ J
3. Вставить в БД
4.Выберите из БД -> 1 â ?? _ â? ¬ â? ¥ J
5.Decode
6. Выход -> 1 ?? _ ? ? J