Как отображать данные 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; ?> 

Попробуйте установить кодировку 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'"); 

Попробуйте убедиться, что браузер распознает страницу как Unicode.

Как правило, это можно сделать, если ваш сервер отправит правильный HTTP-заголовок Content-type , который включает в себя кодировку, которую вы используете.

Например, что-то вроде этого должно работать:

 header('Content-type: text/html; charset=UTF-8'); echo "வெள்ளிக்கிழமை ஐ"; 

Если это работает, и ваша динамически сгенерированная страница все еще не работает:

  • убедитесь, что ваши данные в базе данных MySQL находятся в UTF-8 тоже
    • это может быть установлено для каждой таблицы или даже столбцов в MySQL
  • и убедитесь, что вы подключаетесь к нему с помощью UTF-8.

В принципе, все ваше приложение должно использовать ту же кодировку:

  • PHP-файлы,
  • База данных
  • HTTP-сервер

Для новой версии PHP, которая использовала mysqli , используйте этот код после подключения к mysql:

 mysqli_set_charset($link, 'utf8'); 

выполнить запрос

 SET NAMES 'utf8' 

сразу после подключения к базе данных

Сначала вам нужно преобразовать ваш формат данных mysql в utf-8 , см. Эту замечательную статью oreilly:

,

Превращение данных MySQL в UTF-8

,

После этого убедитесь, что тип кодировки вашей страницы – utf-8 :

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
 <?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 "வெளà¯à®³à®¿à®•à¯à®•à®¿à®´à®®à¯ˆ à®"; ?>