În continuare va propun o soluție la aceasta problema pentru site-uri scrise in php care folosesc MySQL ca baza de date pentru a stoca informatia de pe site.
Este necesar ca:
SERVER Connection Collation sa fie egal cu utf8_general_ci (vezi in setari la server)
DATABASE CHARACTER SET sa fie egal cu UTF8
Database Collation sa fie egala cu utf8_general_ci
Vezi mai jos schema bazei de date
--
-- Baza de date: `dbtest`
--
CREATE DATABASE `dbtest` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE `dbtest`;
--
-- Structura de tabel pentru tabelul `tbtest`
--
CREATE TABLE IF NOT EXISTS `tbtest`
( `id` int(11) NOT NULL,
`text` varchar(1000) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Pentru afisarea datelor din baza de date in pagina php ne conducem dupa exemplul urmator:
<?php
header('Content-type: text/html; charset="utf-8"');
$link=mysql_connect (server, user, pass);
mysql_select_db(dbtest);
$charset = mysql_client_encoding($link);
mysql_query("SET CHARACTER SET 'utf8'", $link);
echo "<html>\n";
echo "<head>\n";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n";
echo "</head>\n";
echo "<body>\n";
echo "Setul de caractere curent este: $charset\n";
$sql = "select * from tbtest";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
echo $row["text"]."<br>\n";
}
echo "</body>\n";
echo "</html>\n";
header('Content-type: text/html; charset="utf-8"');
$link=mysql_connect (server, user, pass);
mysql_select_db(dbtest);
$charset = mysql_client_encoding($link);
mysql_query("SET CHARACTER SET 'utf8'", $link);
echo "<html>\n";
echo "<head>\n";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n";
echo "</head>\n";
echo "<body>\n";
echo "Setul de caractere curent este: $charset\n";
$sql = "select * from tbtest";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
echo $row["text"]."<br>\n";
}
echo "</body>\n";
echo "</html>\n";
?>
Niciun comentariu:
Trimiteți un comentariu