str_replace PHP不起作用

时间:2012-06-01 11:41:11

标签: php str-replace

我正在尝试用其他字符串替换某些字符 我使用这个确切的代码在我的主页上工作,但在另一个页面上它不起作用。

在数据库中,我得到±1¢2£¥3§4£description2 在我的PHP中我使用

$description2 = mysql_result($product, 0, 'productDescription2');

if ($description2 !=""){
$searchArray = array('±', '¢', '£', '¥', '§');
$replaceArray = array('x', 'x', 'x', 'x', 'x');
$teknisk =  str_replace($searchArray, $replaceArray, $description2);}

作为输出我使用echo ''. $teknisk .'';

但结果是�1�2��3�4�(与原始description2相同)

而不是x1x2xx3x4x

请帮忙!

4 个答案:

答案 0 :(得分:2)

也许数据库使用与PHP文件不同的编码。首先比较用bin2hex()函数转换的字符串(在PHP中)。

答案 1 :(得分:0)

第二次尝试:

PHP doc的评论中有很多建议。试试这些:

  1. http://www.php.net/manual/es/function.str-replace.php#106653
  2. http://www.php.net/manual/es/function.str-replace.php#75566
  3. http://www.php.net/manual/es/function.str-replace.php#72344

  4. 尝试明确设置网页的图表类型。尝试将其放在标题中:

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    

    或者,如果您使用的是HTML 5:

    <meta charset="utf-8">
    

答案 2 :(得分:-1)

我认为既然你有一些奇怪的字符,它们可能超出了ascii范围,你可能需要使用多字节字符串函数,虽然它没有str_replace模拟,你可能需要使用多字节正则表达式。

答案 3 :(得分:-1)

请看一下,它将告诉您如何在Web应用程序中处理UTF字符

UTF-8 in Web Apps