我认为这是一个字符编码问题。我的JavaScript搜索无法识别字符串,只要字符串包含某些特殊字符,如()*圆括号,星号和数字。为什么我的搜索()无法找到特殊字符?
这个javascript相当简单。我搜索的值的字符串(STR)(VAL):
n = str.search(val);
我搜索使用PHP编写到一个txt文件中的字符串...
$scomment = $_POST['order'];
$data = stripslashes("$scomment\n");
$fh = fopen("comments.txt", "a");
fwrite($fh, $data);
fclose($fh);
...然后用PHP检索...
$search = $_GET["name"];
$comments = file_get_contents('comments.txt');
$array = explode("~",$comments);
foreach($array as $item){if(strstr($item, $search)){
echo $item; } }
...并投入使用AJAX我的HTML ...
xmlhttp.open("GET","focus.php?name="+str,true);
xmlhttp.send();
我的HTML编码为UTF-8。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
问题是,当我搜索()字符串时,无法识别特殊字符。
我没有真正看到编码PHP创建文本的选项,所以我认为它也是UTF-8。这个假设是不正确的?
如果这是一个编码问题,我该如何更改用PHP编写的txt文件的编码?如果是由上面的代码引起的,问题在哪里?
什么是$ scomment价值?实际上正在写入文本文件的是什么? – jeff
字符串。句子。有些包含像括号这样的特殊字符,而这些是不被识别的。 – user3283304
这些是正常字符,应该可以搜索。在你的代码中还有其他的事情正在阻止你想要的结果。 – jeff