php - 从 Android 应用程序到 mysql 数据库的阿拉伯文本

标签 php android mysql utf-8 arabic

我在将阿拉伯文本解析到 mysql 数据库时遇到一些问题。这是我所做的:

  1. 将应用程序中的文本解析为 PHP 脚本

    String address = ListActivity.urlZapis;
    try {
        address +="?lp=" + detal.lp + "&date=" + detal.date + "&name=" + URLEncoder.encode (detal.name, "UTF-8");
    } catch (UnsupportedEncodingException e1) {
        e1.printStackTrace();
    }
    
    try {
    URI uriAddress = new URI(address.replace(" ", "%20"));
    address=uriAddress.toString();
    DefaultHttpClient httpClient = new DefaultHttpClient();
    HttpPost httpPost = new HttpPost(address);
    
    httpClient.execute(httpPost);
    
    } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
    } catch (ClientProtocolException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    } catch (URISyntaxException e) {
    e.printStackTrace();
    }
    
  2. 在 php 文件中我连接到 mysql 并发送数据

$connect = mysqli_connect("$host", "$username", "$password", "$db_name");

if(mysqli_connect_errno($connect))
{
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");

然后我在 phpmyadmin 中看到类似的内容: 姓名 - ماÙсروي٠وÙсولار 而不是阿拉伯文文本。 mysql的排序规则设置为utf8_general_ci。 当我通过 phpmyadmin 输入阿拉伯语文本时,一切正常。它正确地显示在我的应用程序中,因此我确信将其发送到数据库时存在问题。

最佳答案

您需要将 POST 编码为 utf-8 并且您的 mysql 也是 utf-8 。并且不要使用UTF-8创建php脚本,只需使用记事本默认创建即可。

public JSONObject makeHttpRequest(String url, String method,
        List<NameValuePair> params) {

    // Making HTTP request
    try {

        // check for request method
        if(method == "POST"){
            // request method is POST
            // defaultHttpClient

            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);
            httpPost.setEntity(new UrlEncodedFormEntity(params,"utf-8"));

            HttpResponse httpResponse = httpClient.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();

关于php - 从 Android 应用程序到 mysql 数据库的阿拉伯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21898754/

相关文章:

android - 针对不同的 WP 版本并行发布与针对不同的 Android 版本发布

android - 在 Android 中使用 Google Cloud Print API

php - 使用 PHP 将基于另一个值的值插入到 MYSQL 中

php - 如何从多个 mysql 列中选择不同的值并将它们放入一个 PHP 数组中?

php postgresql 连接

javascript - 类型错误 : Cannot read property 'submit' of undefined Magento 'Add to cart'

android - 通知在模拟器中有效,但在电话中无效

php - 在 php 中处理数组?

用于插入和更新的 MySQL Fire 触发器

php - 在应用程序上按下类似按钮时自动刷新时间轴页面?