[英]special characters between php and java android using Json encode
當我在標題中找到站點時,我已經加重了字符編碼問題。 我在網上找到了幾種解決方案,但是它不起作用,或者我不知道如何使用。 開始時:我在php myssql基礎中收集所有數據,並且我使用json_encode函數將數據返回給應用程序。 這是它崩潰的地方。 具有重音符的所有字段都將替換為null。 數據庫是一個網站(我無法更改),並且在Windows-1252本身中進行編碼,並直接與wampPHP插入,為什么找到了解決方案
$liste_amis = $bdd->query('SELECT * FROM lieux');
$nombre_amis=0;
while($myliste=$liste_amis->fetch()){
foreach($myliste as &$value)
{
$value = mb_convert_encoding($value, "UTF-8", "Windows-1252");
}
$output[]=array_map('utf8_encode', $myliste );
}
print(json_encode($output));
但它僅適用於用wampPHP插入的數據,更多的是像這樣的“discotA¨que”,在Logcat中像這樣的“ discoth \\ u00c3 \\ u00a8que”
和剩菜總是給空
在我的Java代碼中,我使用BufferedReader
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8192);
StringBuilder sb = new StringBuilder();
String line = null;
int i = 0;
while ((line = reader.readLine()) != null) {
sb.append(line);
i++;
救命
編輯:
終於成功了,解決方案:
mysql_query ( "'utf8' SET NAMES" );
//--.......
while($myliste=$liste_amis->fetch()){
$output[]=array_map('utf8_encode', $myliste);
}
print(json_encode($output,JSON_UNESCAPED_UNICODE));
java的:
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8);
坦克。
將您的代碼重寫為此...
foreach($myliste as &$value)
{
$value = mb_convert_encoding($value, "UTF-8", "Windows-1252");
}
$output[]=array_map('utf8_encode', $myliste);
}
print(json_encode($output,JSON_UNESCAPED_UNICODE));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.