Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
str#u代替PHP';行不通_Php_Str Replace - Fatal编程技术网

str#u代替PHP';行不通

str#u代替PHP';行不通,php,str-replace,Php,Str Replace,我试图用其他字符串替换某些字符 我让它在我的主页上用这个确切的代码工作,但在另一个页面上它不工作 在数据库中,我得到了±1,2%3§4作为说明2 在我的php中,我使用 $description2 = mysql_result($product, 0, 'productDescription2'); if ($description2 !=""){ $searchArray = array('±', '¢', '£', '¥', '§'); $replaceArray = array('x',

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

在数据库中,我得到了
±1,2%3§4
作为
说明2
在我的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'$特克尼斯克

但结果是这
�1.�2.��3.�4.�(与原始的
说明2
相同)

而不是
x1x2xx3x4x


请帮忙

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

我认为,由于您有一些奇怪的字符,它们可能超出了ascii范围,您可能需要使用多字节字符串函数,尽管它没有str_替换模拟,但您可能需要使用多字节正则表达式。

第二次尝试:

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


  • 尝试显式设置页面的图表类型。尝试将其放置在标题中:

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    
    
    
    或者,如果您使用的是HTML 5:

    <meta charset="utf-8">
    

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


    我认为这是由于数据库中的编码。我试过你的脚本,当
    $description2=“±1、2、3§4”
    你可以使用phpMyAdmin或通过此sql(先备份):ALTER TABLE yourtable CONVERT TO character set utf8 COLLATE utf8\u general\u C更改数据库的字符集和排序规则。请在此处回显此命令<代码>显示变量,如“字符%”AljoshaBre
    字符集\客户端utf8字符集\连接utf8字符集\数据库拉丁字符集\文件系统二进制字符集\结果utf8字符集\服务器拉丁字符集\系统utf8字符集\目录/usr/share/mysql/charsets/
    您可能应该更改数据库字符集<代码>使用数据库
    更改数据库YOURDB默认字符集UTF8是wierd标志使它无法工作。所以我把它们改成了另一组字符。谢谢