Intereting Posts
wp_insert_post с формой Ошибка привязки вложенного массива в подготовленный оператор mysql Как отправить изображение base64 через ajax Лучший способ реализовать интерфейс Calendar с помощью Google Cal для событий? Как использовать $ this вне класса? PHP build для Jenkins с ошибкой: «Не удается запустить программу phploc», Редактируемая строка в таблице – использует идентификатор записи в неправильной практике элемента <tr>? Blade: ускользает текст и позволяет создавать новые строки Извлечение данных из базы данных в codeigniter с использованием AJAX Пространство имен с eval () и include () не работает должным образом Эмуляция названных параметров функции в PHP, хорошая или плохая идея? Как оценить формулу, переданную как строку в PHP? PHPMailer отправляет электронные письма с предупреждением: это сообщение может и не отправляться: foo@gmail.com Подробнее Создание 10-значной строки случайного подтверждения php Дата Разница в php в дни?

utf 8 – PHP и MySQLi UTF8

моя таблица char set – utf8, и это сортировка utf8.now у меня есть этот код:

$mysqli = new mysqli("localhost", "root", "", "Amoozeshgah"); if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); } if (!$mysqli->set_charset("utf8")) { printf("Error loading character set utf8: %s\n", $mysqli->error); } else { printf("Current character set: %s\n", $mysqli->character_set_name()); } mysql_set_charset('utf8'); if ($stmt = $mysqli->prepare("SELECT About_Title FROM Tbl_About WHERE About_Id=?")) { $city = 8; /* bind parameters for markers */ $stmt->bind_param("s", $city); /* execute query */ $stmt->execute(); /* bind result variables */ $result = $stmt->get_result(); /* fetch value */ while ($myrow = $result->fetch_assoc()) { // use your $myrow array as you would with any other fetch printf("%s is in district %s\n", $city, $myrow['About_Title']); print("shod"); } 

но вне это:

 Current character set: utf8 8 is in district نتمنتشس shod 

Что я могу сделать? Изменить: меня заменили:

 if (!$mysqli->set_charset("utf8")) { printf("Error loading character set utf8: %s\n", $mysqli->error); } else { printf("Current character set: %s\n", $mysqli->character_set_name()); } mysql_set_charset('utf8'); 

с

 $mysqli->set_charset("utf8") 

но никакой разницы.

Пожалуйста, замените mysql_set_charset('utf8'); to $mysqli->set_charset("utf8") 🙂

 or mysqli_set_charset($this->mysqli,"utf8"); mysqli_set_charset($conn,"utf8"); 

Интересный сценарий, который может помочь кому-то другому. Никаких технических деталей / объяснений и вместо этого просто нажмите / подскажите в правильном направлении.

Сценарий: удаленное автоматическое создание учетной записи пользователя на основе успешной / ПРОВЕРЕННОЙ транзакции IPN PayPal. Mysqli Query создает данные пользователя и usermeta, но значение этих данных содержит скрытые символы форматирования и отменяет использование этих данных, вызванных обработкой формы. Очень простое решение без изменения / изменения существующих таблиц базы данных. В основном это гарантирует, что ваши данные являются только ASCII печатными символами и даже используют $ mysqli-> set_charset («utf8»); на самом деле это не так важно, поскольку вы готовите свои данные для обработки и вводите «ASCII clean».

  $create_ipn = $mysqli->prepare("INSERT INTO xxx_somewhere (some_ipn_parameter , email, domain, item) VALUES (?, ?, ?, ?)"); $create_ipn->bind_param("ssss", $some_ipn_parameter, $email, $domain, $item); $some_ipn_parameter = preg_replace( '/[^\x01-\x7F]/', "", 'the_actual_ipn_data' ); $email = 'edward@ait-pro.com'; $domain = ''; $item = 'Test'; $create_ipn->execute(); 

При извлечении данных из базы данных вы не только правильно получаете данные, но также должны правильно отображать их на страницах, поэтому попробуйте использовать кодировку UTF-8 в заголовке страницы:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<meta charset="utf-8">

Это моя проблема и решение, благодаря Рохиту Кумару Чаудхари.