当我尝试将俄语文本插入到MySQL数据库中时,它会插入如下内容:г?
Рісѓрїр°ріс<рїр°с<рір°рї
因此,我有两个页面: registration.php和addUser.php。他们中的每一个
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">数据库由11个表组成,每个表都有排序规则: utf8_general_ci,类型: MyISAM。每个表中的每个字段都有排序规则: 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);
}
?>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所以我需要正确地显示,保存和选择数据库中的俄文文本。谢谢!连接超时10数据目录\usr\local\mysql-5.1\data\
发布于 2010-12-10 09:14:29
连接到数据库后尝试调用mysql_set_charset('utf8');。我认为这类似于执行集合名称查询,但由于PHP手册上说推荐使用该函数而不是集合名称查询,所以我会尝试一下。
此外,当您显示内容时,可以尝试使用echo htmlentities($string, ENT_COMPAT, 'UTF-8');
发布于 2011-10-15 20:44:05
我将希腊语存储在像这样创建的表中:
CREATE TABLE `test` (
`test_id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
`test_name` VARCHAR(30) NOT NULL,
PRIMARY KEY (`test_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;或者,如果表已经创建,我想您可以在phpmyadmin界面中更改字符集它。也许这对你有帮助。
发布于 2010-12-10 09:24:17
检查您的MySQL配置,并确保您的编码定义正确。将这些行添加到您的安装使用的my.cnf或my.ini中。下面这些设置帮我完成了这个任务:
[client]
default-character-set=utf8[mysql]
default-character-set=utf8[mysqld]
character-set-server=utf8https://stackoverflow.com/questions/4404768
复制相似问题