javascript - 无法通过 jQuery ajax 发送特殊字符

标签 javascript character-encoding tags

我正在开发一个网页,用户可以在其中使用标签搜索文件。 我正在使用 jQuery Ajax 对 API(数据库)进行远程调用。 当我使用像 a-z 这样的非特殊字符时一切正常,但在使用例如 åäö 时失败。

在服务器端,我使用的是 PHP。我打印标签以查看它是否“到达”并且所有 a-z 工作正常但 åäö 根本不显示。他们似乎没有“到达”。

有什么问题吗?

这是我的 jQuery 代码:

var tags = $('#tags').val();

$.ajax ({
    type: "POST",
    url: base_url + "search", 
    data: "tags=" + tags + "&limit=" + limit, 
    beforeSend: function (html) {
            $("#search_results").html("Searching for files...");
    },
    success: function (html) {
            $("#search_results").html(html);
    },
    error: function (html) {
            $("#search_results").html('Something went wrong!');
    }
});

这是我的服务器端代码:

echo ($_POST['tags']);

我在 SO 上搜索并查看了相关问题,但不幸的是没有帮助我。

更新

用这个解决了!现在工作正常。

{tags: encodeURIComponent(tags), limit: limit}

最佳答案

数据(标签)必须在使用 encodeURIComponent() 将其发送到服务器之前进行编码

关于javascript - 无法通过 jQuery ajax 发送特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8863506/

相关文章:

javascript - 谷歌地图 api 方向服务在显示多个标记 javascript 之间的路线时提供 OVER_QUERY_LIMIT

javascript - PHP jquery 鼠标悬停图像效果

javascript - 为什么在一个 js 文件中创建的函数在调用甚至在另一个 js 文件中创建时不起作用?

ruby - 如何在 Ruby 2.0 中将 UTF-8 转换为 ISO-8859-1?

javascript - 如何在javascript中禁用标签标签

database - 用户搜索关键字与标签的匹配

emacs - 在 Emacs 中导航重复标签定义的最佳方法是什么?

javascript - 将 PHP preg_replace 转换为 javascript 并将其设置为递归

encoding - "Raw"从双UTF-8到UTF-8(或从UTF-8到ANSI)的转换

php - 将 UTF-8 数据放入 latin1 数据库列时会发生什么?