mysql php многоязычный арабский и хинди - PullRequest
1 голос
/ 10 декабря 2011

У меня есть поле "scroller" с сопоставлением "utf8_unicode_ci" в базе данных mysql.Я пытаюсь сохранить арабский текст в это поле.

Когда я вставляю его в MySQL напрямую, он работает.

Используя этот код ниже, я пытался редактировать поле.Когда я повторяю это, он отображается правильно.Но когда он сохраняется с помощью обновления, его сохранение выглядит так: «???????: 89 ????? ?? ?????? AMRI ????????? ?????????? ??????? ????? ????? ??????? "в базе данных.

echo "<meta http-equiv=Content-Type content=text/html; charset=UTF-8>";
require 'config.php';
mysql_query("SET NAMES 'utf8'"); 
mysql_query('SET CHARACTER SET utf8'); 
$scroller=htmlentities($_POST['scroller'],ENT_QUOTES,"UTF-8");
mb_internal_encoding("UTF-8");
echo $scroller;
    $sql="UPDATE arab_scroller SET scroller='$scroller' WHERE page='$id1' ";
    if (!mysql_query($sql,$con))
        {
            die('Error: ' . mysql_error());
        }
        header( 'Location:index.php' );

Пожалуйста, помогите мне

Ответы [ 2 ]

1 голос
/ 10 декабря 2011

Я только что проверил то же самое с турецким. Если параметры сортировки по умолчанию для вашей таблицы не UTF8, у вас могут быть такие проблемы.

Пожалуйста, попробуйте сначала:

ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

А затем попробуйте снова запустить код.

Также лучше использовать mysql_set_charset вместо SET NAMES: http://php.net/manual/en/function.mysql-set-charset.php

0 голосов
/ 11 марта 2013

Вы просто меняете таблицу Collation utf8_general_ci по умолчанию она принимает латиницу;

ИЛИ

Вы выполняете этот запрос:

ALTER TABLE tbl_name НАСТРОЙКА ПО УМОЛЧАНИЮ ПО УМОЛЧАНИЮ utf8 COLLATE utf8_general_ci;

Это действительно работает со мной.

...