相关疑难解决方法(0)

如何避免在php中回显字符65279?(这个问题也与Javascript xmlhttp.responseText(ajax)有关)

我遇到过这里描述的类似问题(以及其他地方) - 在ajax回调中,我得到一个似乎没问题的xmlhttp.responseText(当我提醒它时 - 它显示正确的文本) - 但是当使用'if'时将它与字符串进行比较的语句 - 它返回false.

(我也是编写服务器端代码返回该字符串的人) - 经过多次研究字符串后 - 我发现该字符串有一个"隐形字符"作为它的第一个字符.未显示的角色.如果我将其复制到记事本 - 然后删除第一个字符 - 在再次按Delete之前不会删除它.

我在xmlhttp.responseText中为返回的字符串做了一个charCodeAt(0).它返回65279.

谷歌搜索它显示它是某种UTF-8控制字符,应该设置"big-endian"或"small-endian"编码.

所以,现在我知道问题的原因了 - 但是......为什么这个角色会被回应呢?在源PHP我只是使用

echo 'the string'...
Run Code Online (Sandbox Code Playgroud)

它显然以某种方式输出[chr(65279)]字符串......

为什么?我怎么能避免它呢?

javascript php ajax utf-8

33
推荐指数
2
解决办法
4万
查看次数

关于json_encode和ajax dataType:"json"

在我的ajax代码中:

$.ajax({
        url: CI_ROOT + "isUserExist",
        type: "GET",
        data: {recepient: recepient},
        success: function(r) {
            console.log(r)
        }
})
Run Code Online (Sandbox Code Playgroud)

给我一个输出[{"records":"1"}] [{"records":"1"}]所以我通过在我的ajax代码中添加dataType:"json"将其解析为json .但是当我解析它时,它不会给我输出但是在try-catch-block上有错误.

如何将其显示为对象?在我的PHP代码中,我这样做:

 for ($i = 0; $i < count($matches[0]); $i++) {
     echo json_encode($this->searchmodel->doesUsersExists($matches[0][$i]));
 } //gets the user id of the user from a given string.
Run Code Online (Sandbox Code Playgroud)

javascript php json

0
推荐指数
1
解决办法
405
查看次数

标签 统计

javascript ×2

php ×2

ajax ×1

json ×1

utf-8 ×1