MySQL数据库中的数据无法在网站中正确显示

时间:2013-09-05 20:33:03

标签: php mysql unicode utf-8

我正在尝试将英文网站翻译成波斯语。我遇到的问题是:

  1. 网站正在加载拉丁语Unicode,因此我不得不将字符集更改为utf-8,以便内容在波斯语中正确显示
  2. MySQL数据库中的数据未正确显示在网站上可能导致Unicode问题
  3. 我做了什么:

    <?php ini_set('default_charset','utf-8'); header('Content-type: text/html; charset=utf-8'); ?>
    

    由此,问题#1修复

    但对于问题2,我仍然面临问题,虽然我已经改变了表格以使用utf 8,但问题仍然存在。我很高兴看到有人能帮助我。     function bbcode($ str){     // $ str = htmlentities($ str);

    $token = array(
                "'\[b\](.*?)\[/b\]'is",                                  
                '/\[i\](.*?)\[\/i\]/is',                                
                '/\[u\](.*?)\[\/u\]/is',                                
                '/\[url\=(.*?)\](.*?)\[\/url\]/is',                         
                '/\[url\](.*?)\[\/url\]/is',    
                '/\[img\](.*?)\[\/img\]/is',                            
                '/\[mail\=(.*?)\](.*?)\[\/mail\]/is',                    
                '/\[mail\](.*?)\[\/mail\]/is',                            
                '/\[font\=(.*?)\](.*?)\[\/font\]/is',                    
                '/\[size\=(.*?)\](.*?)\[\/size\]/is',                    
                '/\[color\=(.*?)\](.*?)\[\/color\]/is',   
                "':big_smile:'is",  
                "':cool:'is", 
                "':hmm:'is",
                "':lol:'is",  
                "':mad:'is",
                "':neutral:'is",
                "':roll:'is",
                "':sad:'is",
                "':smile:'is",
                "':tongue:'is",
                "':wink:'is",
                "':yikes:'is", 
                "':bull:'is", 
                '/\[item\=(.*?)\](.*?)\[\/item\]/is', 
                '/\[spell\=(.*?)\](.*?)\[\/spell\]/is', 
                "':warrior:'is",
                "':paladin:'is",
                "':hunter:'is",
                "':rogue:'is",
                "':priest:'is",
                "':dk:'is",
                "':shaman:'is",
                "':mage:'is",
                "':warlock:'is",
                "':druid:'is",
                "'\[ul\](.*?)\[/ul\]'is",
                "'\[ol\](.*?)\[/ol\]'is",
                "'\[li\](.*?)\[/li\]'is",
                );    
    

    非常感谢

2 个答案:

答案 0 :(得分:1)

抱歉,我的回复不够明确。我几乎睡了数据库是空的,所以我不需要转换任何东西,但是当我向它们插入数据时,数据没有正确显示。顺便说一下,我对php或mysql并不擅长;我正在阅读这些文章和建议几个小时,我只是变得更加困惑。你能告诉我在哪里输入代码和代码,

$link = mysql_connect("localhost","UserName","Password") or die(mysql_error());
mysql_set_charset("utf8",$link);
mysql_select_db("DataBase Name") or die(mysql_error());

我想我从这些文章中发现的事情是在服务器尝试连接到db时将mysql_set_charset("utf8",$link)部分添加到上面的代码中,但我已经尝试了它并且它不起作用。我的网站使用包括这样的内容:

include("../../config/config.php");
$connect = mysql_connect("$db_host", "$db_user", "$db_pass")or die(mysql_error());
mysql_set_charset("utf8",$link);

答案 1 :(得分:0)

假设您已正确地将表中的数据转换为UTF-8(仅更改字符集是不够的),听起来您可能遇到连接未设置为UTF-8的问题。请查看SET NAMES,更具体地说this question

如果您不确定自己是否已将数据转换为UTF-8,请查看this question以及this Wordpress article,并确保已按照步骤进行操作。