默认情况下,我使用的是插入到MySQL数据库排序规则latin1_swedish_ci中的泰米尔语言(utf-8)。但是数据显示的是?当我找回它的时候。我在网上研究了这个问题。但解决方案没有任何用处。完全是在发火。任何人都可以帮我。下面的查询如下所示。只给我简单的解决办法。
<?php
$con=mysql_connect('localhost','root','');
$db=mysql_select_db('nikah', $con);
$sql="select * from matrimony";
$result=mysql_query($sql) or die(mysql_error());
While($row=mysql_fetch_array($result)){
echo $row['name'];
}
?>
发布于 2016-01-13 18:28:12
除了在另一个答案中提到的设置mysql_set_charset("utf8");
之外,您可能还需要调整一些更多的设置,以便完全防止字符被破坏。
连接
连接需要知道预期的字符集。在创建连接之后,请像下面这样指定字符集
$con = mysql_connect('localhost','root','');
mysql_set_charset("utf8");
标头
将HTML和PHP头中的字符集设置为UTF-8
header('Content-Type: text/html; charset=utf-8');
(PHP头必须放在任何类型的输出(echo、空格、HTML)之前)<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
(headers放置在<head>
/ </head>
标记中)数据库与表
您的数据库及其所有表都必须设置为UTF-8。注意,字符集与排序规则不完全相同(参见这个职位)。
您可以通过对每个数据库和表(例如,在phpMyAdmin中)运行下面的查询一次来做到这一点。
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
如果你遵循以上所有的提示,你的问题就有可能得到解决。如果不是,您可以看看这个StackOverflow帖子:一路走来。
mysql_*
函数是自PHP5.5(并在PHP7中完全删除)以来被弃用的,如果可以的话,您应该使用停止使用它们。您应该选择另一个API,比如mysqli_*
或PDO --参见选择API。
发布于 2016-01-13 18:22:29
尝试使用解释为mysql_set_charset()
的这里。
$link = mysql_connect('localhost', 'user', 'password');
mysql_set_charset('utf8',$link);
编辑:,正如Jay所指出的,请记住,在PHP5.5.0中,已经不再推荐mysql扩展了。来自php文档:
警告这个扩展在PHP5.5.0中被废弃,在PHP7.0.0中被删除。相反,应该使用MySQLi或PDO_MySQL扩展。还请参阅MySQL:选择API指南和相关常见问题以获得更多信息。此函数的替代方法包括: mysqli_set_charset() PDO:将字符集添加到连接字符串,如charset=utf8
https://stackoverflow.com/questions/34774097
复制相似问题