我想将所有£替换为其HTML代码£=> £因为它显示为?钻石。
我使用以下代码,但它什么也没做。
<?php
include ("config.php");
$get_id = mysql_real_escape_string($_GET['id']);
$page_get = mysql_query("SELECT * FROM contents_page WHERE `id` = '$get_id'");
while($page_row = mysql_fetch_assoc($page_get)) {
$page_row["Page_Content"] = str_replace('£','£',$page_row[Page_Content]);
$smarty->assign('page_title', $page_row['Page_Title']);
$smarty->assign('page_content', $page_row['Page_Content']);
}
$smarty->display('page.tpl');
?>
我正在使用str_replace()但没有任何事情发生它就像它看不到£
答案 0 :(得分:1)
将此添加到您网页的head标记:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
答案 1 :(得分:1)
我自己有编码问题。转到数据库,查看数据是否出现乱码。如果不是,则在连接数据库之前设置连接属性,如SET CHAR UTF8 ..
$link1 = mysql_connect('localhost','user1','pass1',TRUE);
mysql_selectdb('db1',$link1);
mysql_set_charset('utf8',$link2);
另一个解决方案是查看输入在进入数据库之前编码的内容,然后将字符集更改为
mysql_set_charset( 'LATIN1',$ LINK2);
例如。
无论如何,我会做什么,我仍然会将我的字符设置为utf-8,将结果输出到页面..看看该字符是否真的是一个重听的声音,如果它是一个不同的符号,我会把它在字符串替换函数而不是英镑符号
答案 2 :(得分:0)
您可能需要类似自我实现的mb_str_replace(),假设磅符号不在标准的ascii集内。
该页面上有多个示例实现: http://php.net/manual/en/ref.mbstring.php
我 - 希望 - 这就是你所需要的,如果你必须完全实现unicode它会变得非常烦人。可能你可以避免,如果使用mb_str_replace贡献不起作用,你可能必须在php ini中启用unicode功能,以便php甚至可以识别你要替换的字符是unicode之一。
答案 3 :(得分:0)
str_replace
不适合你,因为针和大海捞针的编码不同,因此字符不匹配。事实上,编码是您需要关心的唯一问题,您不需要替换任何东西。有关编码需要考虑的内容的详细信息,请参阅http://kunststube.net/frontback。
对于更大的背景图片,请参见What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text。
答案 4 :(得分:0)
<?php
$link1 = mysql_connect('localhost','user1','pass1',TRUE);
mysql_selectdb('db1',$link1);
mysql_set_charset('utf8',$link1);
?>