Установка кодування в utf-8 для поточного соедіненінія з mysql - stack overflow російською

На дане питання вже відповіли:

Результат sql-запиту повертається не в UTF-8 кодуванні. Намагався встановити кодування за допомогою функції mysql_set_charset ( 'utf8', $ db). але по всі видимості функція не працює, при тому, що MySQL версії 5.0.7. Як можна по іншому задати кодування з'єднання, але не використовуючи SET NAMES?

З.И. Коли працював з тієї ж таблицею за допомогою PDO. при установці кодування:

Поля поверталися в UTF-8.

заданий 27 Вересня '11 о 10:01

Відзначений як дублікат учасником Іпатов php Учасники зі знаками php можуть одноосібно закривати питання з міткою php як дублікати, а також повторно відкривати їх при необхідності. вчора.

З таким запитанням задавали раніше і на нього вже отримано відповідь. Якщо представлені відповіді не є вичерпними, будь ласка, задайте нове питання.

Самий 100% ий код для 100% ого UTF-8: D

відповідь дан 27 Вересня '11 о 10:20

і зовсім без SET NAMES: D - Afipsky 27 Вересня '11 о 10:57

Варіант з SET NAMES я знаю: mysql_query ( "SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $ db), а ось без нього ХЗ! Ну раз по іншому не як, нехай буде відповіддю. Дякуємо. - Afipsky 27 Вересня '11 о 11:27

  1. Оригінальна API MySQL (функції mysql_) застаріло, починаючи з версії PHP 5.5.0, і видалено в PHP 7.0.0.

Для поліпшеного модуля MySQL (MySQL Improved) кращим способом є використання методу set_charset ().

Використання для цих цілей методу query () (наприклад: SET NAMES 'utf8') не рекомендується.

У PDO слід вказувати кодування з'єднання в параметрі dsn при створенні екземпляра класу роботи з бд:

P.S. Для роботи з чотирьохбайтового UTF-8 (наприклад, щоб емодзі зберігалися в базу) замість кодування utf8 слід використовувати кодування utf8mb4. База також повинна бути налаштована з використанням utf8mb4.

відповідь дан 5 Жовтня о 7:20