【发布时间】:2015-05-01 16:15:37
【问题描述】:
我认为这是一个字符编码问题。每当字符串包含某些特殊字符(例如 ()* 括号、星号和数字)时,我的 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 值是多少?实际写入文本文件的内容是什么?
-
文本字符串。句子。有些包含特殊字符,如括号,这些是无法识别的。
-
这些是普通字符,应该是可搜索的。您的代码中发生的其他事情阻碍了预期的结果。
标签: javascript php string encoding utf-8