我有一个用户可以输入搜索字词的表单,基本上它是页面顶部的搜索栏。如果用户输入了任何内容,那么新页面也会包含他们输入的内容,以免他们忘记,就像谷歌一样。
首先将页面设置为使用UTF-8(页面正确地采用UTF-8编码):
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
输入框为:
<input class="sb_input" name="q" type="text" value="<?php if (isset($displaysearch)) echo $displaysearch; ?>" />
上面是一些用于清理搜索词的PHP代码:
$search=$_GET['q'];
$displaysearch=preg_replace('@[^\p{L}| ]@','',trim($search));
问题是如果我输入Über
,新页面上的搜索框会显示�ber
,而我无法弄清楚它出错的地方。
答案 0 :(得分:2)
HTML <meta>
标签可能是最不相关的位。确保您已阅读并理解UTF-8 all the way through。此外:
$_GET['q']
。这表明您已禁用完整错误报告。如果是这样的话,那么在你走得更远之前,你需要先解决这个问题;没有错误消息的帮助就不可能编码。这是一个brief explanation。u
modifier,因此您的文本将被处理为单字节。