无法处理mysql_set_charset变量

时间:2011-11-24 21:16:51

标签: php encoding character-encoding

我正努力在我正在开发的网站上获得正确的编码输出。但是当我使用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());

为什么会发生这种情况,我应该如何解决?

1 个答案:

答案 0 :(得分: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显示错误,警告等,以便您立即看到错误,从而防止错误的结论:

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

这会显示所有错误,将其添加到文件的最顶部。

您可以在PHP: Runtime Configuration - Manual

上阅读相关信息