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/

相关文章:

php - 在存储到数据库之前清理输入

php - bind_param 错误,其中提供了正确数量的参数?

android - 使编辑文本出现在android中设备的顶部和软键盘之间

java - Android Studio 总是打开相同的错误页面

java - Android 在闪屏中加载 Activity

mysql - 如何有效地选择具有多对多关系的关联项目的不同标签?

java - JPA 父子有效。单独插入 child

php - 从mysql查询动态创建表

php - 使用 mysql_num_rows(),如何判断 myql_query() 返回的结果是 0 还是 php 中的 sql 错误

php - 我无法在 php 中获取来自 mysql 数据库的一行