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;
?>
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'");
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
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');
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
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:
.
.
Następnie upewnij się, że typ kodowania strony to utf-8:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
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 "வெளà¯à®³à®¿à®•à¯à®•à®¿à®´à®®à¯ˆ à®";
?>
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