gpt4 book ai didi

php - Android:以 UTF-8 编码的 HttpPost JSON 字符串到 PHP

转载 作者:搜寻专家 更新时间:2023-11-01 09:04:47 26 4
gpt4 key购买 nike

这是对 Android with php: Saving utf-8 string to MySQL 的后续问题

我在 Android 中使用 Gson 库将类实例转换为 JSON 字符串。然后使用 HttpPost 将此 JSON 字符串上传到 PHP 脚本以将其保存到我的 MySQL 数据库。

最初我认为问题出在 php 或 MySQL,但现在看来是我的 HttpPost 代码序列没有正确地将 JSON 编码为 UTF-8。如果我调试我的代码并在 Chrome 中使用 JSON 字符串执行 POST,它会完美运行。

我的 MySQL 数据库现在被格式化为 UTF-8 (utf8_general_ci)。

这是我的 HttpPost 代码:

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);

ArrayList<NameValuePair> parameters = new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("questionnaire", json));

httppost.setEntity(new UrlEncodedFormEntity(parameters, "UTF-8"));

HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();

问题可能出在 httppost.setEntity(new UrlEncodedFormEntity(parameters, "UTF-8")); 中,但我不确定如何通知我的 PHP 脚本我正在发送 JSON UTF-8 格式。

例如,当 Gson 创建 JSON strig 时,“can't get there”被 Android 正确编码为“can/u0027t get there”。将 JSON 上传到 PHP 后,它在 MySQL 数据库中保存为“canu0027t get there”,没有“\”。

那么我如何才能在 Android 中将此 JSON 字符串正确标记/标记/识别为 UTF-8 格式,以便正确保存?

最佳答案

在将 json 字符串保存到数据库之前,您必须转义(例如 mysql_real_escape_string())您的 php 代码中的 json 字符串。您的 Android 代码是正确的。

关于php - Android:以 UTF-8 编码的 HttpPost JSON 字符串到 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12799868/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com