我正努力在我正在开发的网站上获得正确的编码输出。但是当我使用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 :(得分: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);
这会显示所有错误,将其添加到文件的最顶部。
上阅读相关信息