我在将阿拉伯文本解析到 mysql 数据库时遇到一些问题。这是我所做的:
将应用程序中的文本解析为 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(); }
在 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/