2011-11-24 65 views
0

我努力在我正在开发的网站上获得正确的编码输出。但是当我使用mysql_set_charset函数时,我在网站上得到了正确的编码。无法处理mysql_set_charset变量

但是奇怪的是 - 在使用这个函数之后 - 我无法正确处理变量。右我的意思是例如下面的代码无法正常工作(这它,当我不使用mysql_set_charset功能):

$replace = array("å", "ä", "ö"); 
$with = array("a", "a", "o"); 

$test = str_replace($repalce, $with, $test); 
$test = strtolower($test); 

connect.php

$connection = mysql_connect("localhost", "****", "****") or die(mysql_error()); 
    mysql_set_charset('utf8',$connection); 
    mysql_select_db("****", $connection) or die(mysql_error()); 

怎么会出现这种情况,我应该如何解决它?

+0

是否已进行了确认您还可以使用正确的编码上的前端太了解了吗? – Repox

+3

您在'$ test = str_replace($ repalce,$ with,$ test)行中输入了'$ repalce'而不是'$ replace'。 ' – Nasreddine

+1

该死,尴尬。谢谢你敏锐的眼睛! – Fredrik

回答

0

mysql_set_charset功能,可以在official documentation阅读:

设置默认字符为当前连接设置。

有使用mysql_set_charset和你的PHP脚本中使用的变量之间没有任何联系,为mysql_set_charset影响他们的价值观。


至于建议对这个问题的意见,由@Nacereddine,你所遇到的最有可能的问题是,您的代码错字:

$test = str_replace($repalce, $with, $test); 

应该是:

$test = str_replace($replace, $with, $test); 

开发中最好的选择是让PHP显示e rrors,警告等,让您立即看到什么是错的,从而防止错误的结论:

error_reporting(E_ALL); 
ini_set("display_errors", 1); 

这将显示你所有的错误,它添加在你的文件的最顶端。

您可以在PHP: Runtime Configuration - Manual