Tôi muốn lấy một số văn bản từ trang PHP vào ứng dụng Android. Miễn là các ký tự là ASCII (lên đến 128) thì không có vấn đề gì nhưng khi tôi muốn hiển thị các ký tự đặc biệt như 'Ţ', 'Â' (cái gọi là Latin-1 Supplement và/hoặc Latin Extended-A - xem nó tại Unicode Chart) Tôi nhận được các ký hiệu lạ vào ứng dụng Android của mình ().Ký tự đặc biệt giữa ứng dụng Android và tập lệnh PHP
Vấn đề là ứng dụng Android của tôi không thể xử lý các ký tự từ bổ sung Latin-1 (mà PHP có thể) nhưng các ký tự từ bộ ký tự mở rộng La-tinh Latinh (mà PHP không thể). Tôi không biết bộ ký tự phổ biến cho cả hai ngôn ngữ để sử dụng bởi vì ngôn ngữ Java có thể đọc PHP là không, và ngược lại.
My Java chức năng mà được nội dung của các trang PHP là thế này:
public static String GetData() {
byte[] Bresult = null;
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://www.mypage.com/script.php");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("var", "val"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
HttpResponse response = client.execute(post);
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == HttpURLConnection.HTTP_OK){
Bresult = EntityUtils.toByteArray(response.getEntity());
Result = new String(Bresult, "UTF-8");
}
} catch (UnsupportedEncodingException e) {
Log.w("MYAPP", "Unsupported Encoding Exception (" + e.getMessage() + ")");
} catch (Exception e) {
Log.w("MYAPP", "Exception (" + e.getMessage() + ") ocurred");
}
return Result;
}
Vì vậy, mã này mang lại cho tôi nội dung của script.php trang. Nếu các ký tự của văn bản nhận được từ 0 đến 128 thì không có vấn đề gì. Ở những nơi khác, tôi có những nhân vật kỳ lạ.
Bây giờ, đây là mã PHP của tôi:
<?php
header("Content-Type: text/plain;charset=utf-8");
echo "ÂŞÂĂĒ";
?>
Tôi cũng có một ứng dụng C++ và nó đọc các văn bản một cách chính xác. Tôi đã thử rất nhiều phương pháp cả ngày và tôi không hiểu. Ai, ở đâu, tại sao? Cảm ơn.
lẽ xem xét điều này http://stackoverflow.com/questions/4917860/android-character- mã hóa-nguyên-tài nguyên-tệp và http://stackoverflow.com/questions/3098207/how-to-set-string-character-encoding-in-android - bất kỳ trợ giúp nào ở đó? – Aerik
Cảm ơn Aerik. Bây giờ tôi có thể gửi chúng chính xác từ PHP đến Android nhưng không phải từ Android đến PHP. Đang cố gắng ... – ali