簡體   English   中英

使用Json編碼的php和Java android之間的特殊字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM