Сохранение арабского текста в базе данных mysql с использованием php

Я пытаюсь сохранить некоторые арабские данные в базе данных mysql. Я установил html-кодировку html как 'utf8'

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

MySQL charset установлен в: UTF-8 Unicode (utf8)

Настройка сопоставления MySQL установлена ​​на: utf8_general_ci

Для сопоставления базы данных и таблицы задано значение: utf8_general_ci

Кроме того, в моем php-коде я использовал $mysqli->set_charset("utf8") чтобы гарантировать, что charset установлен в ut8, но ничего не работает, я отправляю свои данные в php-скрипт, используя html-форму, где enctype is: enctype="multipart/form-data" потому что в этой форме я также загружаю изображение

Странно то, что когда я пишу свой запрос непосредственно в mysql, арабские символы хранятся правильно без проблем, но когда я использую php-запрос для хранения данных, все символы хранятся в неправильной кодировке кодировки

Какие-либо предложения ?

Странно, это должно сработать!

Попытайтесь добавить эти строки после успешного подключения к базе данных:

 $mysqli->query("SET NAMES 'utf8'"); $mysqli->query("SET CHARACTER SET utf8"); 

Например:

 $mysqli = @new mysqli('DB_HOST', 'DB_USER', 'DB_PASS', 'DB_NAME'); if($mysqli->connect_errno) die('Connection Error!'); else{ $mysqli->query("SET NAMES 'utf8'"); $mysqli->query("SET CHARACTER SET utf8"); } 

И включите эти теги META в раздел главы вашей php-страницы:

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

Браузеры будут игнорировать <meta http-equiv ...> если присутствует HTTP-заголовок. Попробуйте положить это вверху страницы php:

 header("Content-Type: text/html; charset=UTF-8"); 

сохраните этот файл на веб-сайте ur, htdocs как «dbh.php», затем включите его в верхней части страницы индекса, набрав <?php include 'dbh.php';?> и вы готовы к работе.

 <?php $conn = mysqli_connect("localhost", "root", "", "database name"); if(!$conn){ die("connection failed: ".mysqli_connect_error()); }else{ $conn->query("SET NAMES 'utf8'"); $conn->query("SET CHARACTER SET utf8"); } 

Вы можете попробовать это. Он должен работать

 <?php $conn = mysqli_connect(<host>, <user name>, <password>, <database name>); if(!$conn){ die("could not connect: ".mysqli_connect_error()); }else{ mysqli_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn); } ?>