Как отображать данные Unicode с помощью PHP
table 'abc' data :
tid title
1 வெள்ளிக்கிழமை ஐ.
2 கோலாகல தொடக்க
$sql=mysql_query("select title from abd where tid='1'");
$row=mysql_fetch_array($sql);
$title = $row['title'];
echo $title;
OutPut отображается следующим образом:
????????????????
Но я хочу отобразить
வெள்ளிக்கிழமை ஐ.
Решение
<?php
mysql_query ("set character_set_results='utf8'");
$sql=mysql_query("select title from abd where tid='1'");
$row=mysql_fetch_array($sql);
$title = $row['title'];
echo $title;
?>
Ответы
Ответ 1
Попробуйте установить кодировку charachter после функции mysql_connect
следующим образом:
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
Ответ 2
Для новой версии PHP, которая использовала mysqli
, используйте этот код после подключения к mysql:
mysqli_set_charset($link, 'utf8');
Ответ 3
Попробуйте убедиться, что браузер распознает страницу как Юникод.
Как правило, это можно сделать, если ваш сервер отправит правильный заголовок Content-type
HTTP, который включает в себя кодировку, которую вы используете.
Например, что-то вроде этого должно работать:
header('Content-type: text/html; charset=UTF-8');
echo "வெள்ளிக்கிழமை ஐ";
Если это работает, и ваша динамически созданная страница все еще не выполняет:
- убедитесь, что ваши данные в базе данных MySQL находятся в UTF-8 тоже
- это может быть установлено для каждой таблицы или даже столбцов в MySQL
- и убедитесь, что вы подключаетесь к нему с помощью UTF-8.
В принципе, все ваше приложение должно использовать одну и ту же кодировку:
- Файлы PHP,
- База данных
- HTTP-сервер
Ответ 4
выполнить запрос
SET NAMES 'utf8'
сразу после подключения к базе данных
Ответ 5
Сначала вам нужно преобразовать ваш формат данных mysql в utf-8, см. эту замечательную статью oreilly:
.
Переключение данных MySQL в UTF-8
.
После этого убедитесь, что ваш тип кодировки страницы utf-8:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Ответ 6
<?php header('Content-type: text/html; charset=UTF-8');echo "<font face='Bamini' size='5'>" . "m.Nkhfd; Fkhh;" ."<br />";
echo "<font face='Bamini' size='10'>" . "m.Nkhfd; Fkhh;" ."<br />";
?>
or
<?php
header('Content-type: text/html; charset=UTF-8');
echo "வெளà¯à®³à®¿à®•à¯à®•ிழமை à®";
?>
Ответ 7
При вставке данных в базу данных MySQL с использованием соответствующего сопоставления (например, utf8_general_ci
для символов Юникода, т.е. хинди). Также используется предопределенная функция PHP utf8_decode
для отображения символов в HTML.