当前位置: 首页 > 知识库问答 >
问题:

不要在ajax中编码utf-8(自动完成)

邵正雅
2023-03-14

我有很多申请。我发送了一个简单的名字,我想得到一个自动完成。

为此,我使用插件jquery autocomplete。

当我发送文本时,我得到-РџСЂРёР

我不明白怎么了。

所有文件都有utf-8编码
在html set tag-meta charset=“utf-8”中,在script-encodeURIComponent(request.name)中

请求标头:
Content-Type:Application/x-www-form-urlencoded;charset=UTF-8
接受编码:gzip,准直,br
接受语言:ru-RU, ru; q=0.9, en-US; q=0.8, en; q=0.7

响应标头:
Content-Type:text/html;charset=UTF-8
内容编码:br

JS:

    $('input[name=\'search_name\']').autocomplete({
    'autoFocus': true,
    'source': function(request, response) {
        $.ajax({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf_token"]').attr('content')
            },
            url: 'search/autocomplete',
            type: 'POST',
            dataType: 'json',
            data: {'filter_name':encodeURIComponent(request.name)},
            success: function(json) {
                response($.map(json, function(item) {
                    return {
                        label: item['name'],
                        value: item['client_id']
                    }
                }));
            }
        });
    },
    'select': function(event, obj) {
        addValue('addClient','client_id',obj.item.value,obj.item.label);
    }
});

PHP:

public function autocomplete(Request $request)
{
    $json = [];
    if ($request->has('filter_client')) {

        $client_info = \App\Models\Client::getClientByName($request->filter_client);
        if ($client_info) {
            foreach ($client_info as $client) {
                $json[] = [
                    'client_id' => $client->client_id,
                    'name' => $client->name,
                ];
            }
            unset($client_info);
        }
    }
    return response()->json($json);
}

共有1个答案

邓鸿信
2023-03-14

如果我们在php中使用next js函数encodeURIComponent(),我们需要使用next函数来稳定工作脚本-urldecode()。

 类似资料:
  • 我看到了这个问题。在Chrome/Safari中,设置为包含一些特殊字符(即西班牙语颚化符“i”)的内容的Ajax响应无法正确解释。 这里的一个例子完美地总结了这个问题: 我试过Firefox和IE,两者都很好。只有Chrome无法正确显示网页。这是URL:http://maixner.eu/#bio正如你所见,有些字符是错误的。这条线:2012-Museum moderního umÄ›ní

  • 问题内容: 我想从请求中获取参数(带有重音符的字符),但是它不起作用。我尝试使用,但也没有用。 我知道返回正确的字符,但不起作用! 有人有主意吗? 问题答案: Paul的建议似乎是最好的做法,但如果要解决此问题,则根本不需要URLEncoder或URLDecoder: 更新: 由于获得了很多选票,我想强调BalusC的观点,即这绝对不是解决方案。充其量是一种解决方法。人们不应该这样做。 我不知道是

  • 问题内容: 我正在用python做一些脚本。我创建一个保存在文件中的字符串。这个字符串有很多数据,来自目录的树状结构和文件名。根据convmv的介绍,我所有的树状结构都是UTF-8。 我想将所有内容都保留在UTF-8中,因为之后我将其保存在MySQL中。现在,在UTF-8的MySQL中,我遇到了一些字符问题(例如é或è-我是法语)。 我希望python始终将字符串用作UTF-8。我在互联网上阅读了

  • 问题内容: Python将以下内容识别为定义文件编码的指令: 我确实在()之前看到过这种说明。它从何而来?完整规范是什么,例如,值可以包含空格,特殊符号,换行符,甚至本身吗? 我的程序将编写纯文本文件,我想使用这种格式在其中包含一些元数据。 问题答案: 这种指定Python文件编码的方法来自PEP 0263-定义Python源代码编码 。 GNU Emacs也可以识别它(请参阅Python语言参考

  • 请查看Servlet类中的注释。如果将更改为,则无法访问应用程序。 为什么会出现这个问题?

  • 本文向大家介绍为何不要在MySQL中使用UTF-8编码方式详解,包括了为何不要在MySQL中使用UTF-8编码方式详解的使用技巧和注意事项,需要的朋友参考一下 MySQL的UTF-8编码方式 MySQL 从 4.1 版本开始支持 UTF-8,也就是 2003 年,然而目前流行的UTF-8 标准(RFC 3629)是在此之后规定的。正因此,才造就了MySQL中的UTF-8与我们日常开发中的UTF-8