2013-08-25 3 views
3

Я пытаюсь сохранить некоторые арабские данные в базе данных MySQL Я поставил документ HTML кодировку, чтобы быть «utf8»магазин арабский текст в базе данных MySQL с помощью PHP

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

MySQL кодировка устанавливается: UTF -8 Unicode (utf8)

MySQL соединение сортировки устанавливается: utf8_general_ci

базы данных и таблиц сортировки устанавливаются: utf8_general_ci

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

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

Любые предложения?

+0

@VahidHallaji на самом деле это работает! Большое вам спасибо, я попробовал $ mysqli-> set_charset ("utf8"), а затем I tr Ваше решение, спасибо –

ответ

3

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

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

$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"); 
} 


И включить эти мета-теги в головной части вашей страницы PHP :

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

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

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

сохранить этот файл в Уре сайте, папку HTDOCS как «dbh.php, а затем включить его в в верхней части страницы индекса, введя <?php include 'dbh.php';?> и вам U готовы пойти.

<?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"); 

} 
0

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

<?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); 
} 
?> 
Смежные вопросы