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标志使它无法工作。所以我把它们改成了另一组字符。谢谢