yoz*_*hik 5 php mysql unicode utf-8
当我试图将俄语文本插入MySQL数据库时,它将其插入如下:г???????????? ?? ????????
Рісѓрїр°ріс<рїр°с<рір°рї
所以,我有两个页面:registration.php和addUser.php.在他们每个人
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Run Code Online (Sandbox Code Playgroud)
数据库由11个表组成,每个表都有排序规则:utf8_general_ci,类型:MyISAM.每个表中的每个字段都有Collation:utf8_general_ci.
当我直接在phpMyAdmin中写入数据库然后将此数据显示到网页时.用英语和俄语 - 一切都好.
但是当我在registration.php上填写个人数据,然后转到addUser.php时,所有俄语字符都显示为我在页面上和数据库中编写的.
function AddNewUser($Name, $Surname, $FatherName, $Email, $Password, $Phone, $DegreeID, $RankID,
$Organization, $Department, $Country, $City, $Address, $Job)
{
//fetch data from database for dropdown lists
//connect to db or die)
$db = mysql_connect($GLOBALS["gl_kussdbName"], $GLOBALS["gl_kussUserName"], $GLOBALS["gl_kussPassword"] ) or die ("Unable to connect");
//to prevenr ????? symbols in unicode - utf-8 coding
mysql_query("SET NAMES 'UTF8'");
//select database
mysql_select_db($GLOBALS["gl_kussDatabase"], $db);
$sql = "INSERT INTO UserDetails (
UserFirstName,
UserLastName,
UserFatherName,
UserEmail,
UserPassword,
UserPhone,
UserAcadDegreeID,
UserAcadRankID,
UserOrganization,
UserDepartment,
UserCountry,
UserCity,
UserAddress,
UserPosition)
VALUES(
'".$Name."',
'".$Surname."',
'".$FatherName."',
'".$Email."',
'".$Password."',
'".$Phone."',
'".$DegreeID."',
'".$RankID."',
'".$Organization."',
'".$Department."',
'".$Country."',
'".$City."',
'".$Address."',
'".$Job."'
);";
//execute SQL-query
$result = mysql_query($sql, $db);
if (!$result)
{
die('Invalid query: ' . mysql_error());
}
//close database = very inportant
mysql_close($db);
}
?>
Run Code Online (Sandbox Code Playgroud)
phpMyAdmin中还有这样的信息:
auto increment increment 1
auto increment offset 1
autocommit ON
automatic sp privileges ON
back log 50
basedir \usr\local\mysql-5.1\
big tables OFF
binlog cache size 32,768
binlog format STATEMENT
bulk insert buffer size 8,388,608
character set client utf8
(Global value) cp1251
character set connection utf8
(Global value) cp1251
character set database cp1251
character set filesystem binary
character set results utf8
(Global value) cp1251
character set server cp1251
character set system utf8
character sets dir \usr\local\mysql-5.1\share\charsets\
collation connection utf8_general_ci
(Global value) cp1251_general_ci
collation database cp1251_general_ci
collation server cp1251_general_ci
completion type 0
concurrent insert 1
Run Code Online (Sandbox Code Playgroud)
所以我需要从数据库中正确显示,保存和选择俄语文本.感谢名单!连接超时10 datadir\usr\local\mysql-5.1\data \
mysql_set_charset('utf8');连接数据库后尝试调用.我认为它类似于执行SET NAMES查询,但由于PHP手册说建议在SET NAMES查询中使用该函数,我会尝试一下.
此外,当您显示您的内容时,您可以尝试 echo htmlentities($string, ENT_COMPAT, 'UTF-8');