Jak wyświetlić dane Unicode w 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;

Wyjście wyświetlające się tak:

????????????????

Ale chcę wyświetlać

வெள்ளிக்கிழமை ஐ.

Rozwiązanie

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

?>
Author: Charles, 2010-03-15

6 answers

Spróbuj ustawić kodowanie charachter po mysql_connect Funkcji Tak:

 mysql_query ("set character_set_client='utf8'"); 
 mysql_query ("set character_set_results='utf8'"); 

 mysql_query ("set collation_connection='utf8_general_ci'"); 
 35
Author: antyrat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-15 11:49:15

Upewnij się, że przeglądarka rozpoznaje stronę jako Unicode.

Ogólnie można to zrobić poprzez wysłanie przez serwer odpowiedniego nagłówka HTTP Content-type, zawierającego zestaw znaków, którego używasz.


Na przykład, coś takiego powinno działać:

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


Jeśli to działa, a dynamicznie generowana strona nadal nie działa:

  • upewnij się, że Twoje dane w bazie MySQL są również w UTF-8
    • można to ustawić dla każdej tabeli, a nawet kolumny, w MySQL
  • i upewnij się, że łączysz się z nim za pomocą UTF-8.

Zasadniczo wszystkie Twoje aplikacje powinny używać tego samego kodowania:

  • Pliki PHP,
  • Baza Danych
  • serwer HTTP
 6
Author: Pascal MARTIN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-15 11:46:00

Dla nowej wersji PHP używającej mysqli, Użyj tego kodu po podłączeniu do mysql:

mysqli_set_charset($link, 'utf8');
 6
Author: MohsenB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-16 18:06:15

Wykonaj zapytanie

SET NAMES 'utf8'

Zaraz po podłączeniu do bazy danych

 3
Author: Silver Light,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-15 11:49:36

Najpierw musisz przekonwertować swój format danych mysql na utf-8 , Zobacz ten świetny artykuł oreilly:

.

Zamiana danych MySQL na UTF-8

.

Następnie upewnij się, że typ kodowania strony to utf-8:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 1
Author: Sarfraz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-15 11:45:49
<?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 "வெளà¯à®³à®¿à®•à¯à®•à®¿à®´à®®à¯ˆ à®";
?>
 0
Author: Mohan Kumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-10 10:28:52