ich diesen PHP-Code bin mit dem JSON von MySQL-Datenbank zu generieren:Konvertieren codierte utf-8 JSON
while($row =mysqli_fetch_assoc($result))
{
$emparray[] = array_map('utf8_encode', $row);
}
echo json_encode($emparray);
Dann benutze ich die HttpURLConnection die URL zu holen und den Echo-String erhalten:
URL url = new URL("http://localhost/myserver.php");
urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
result = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
result.append(line);
}
der Druck ist:
[{"id":"1","titulo":"C\u00f3digo de Defesa do Consumidor","descricao":"Institui o c\u00f3digo de defesa do consumidor","tags":"cdc","categorias":"cat_cod,cat_leisord","numero_da_lei":"13105","data_da_lei":"11111111","ativa":"1","byuser":"0","versao_da_lei":"0","url":"http:\/\/www.planalto.gov.br\/ccivil_03\/leis\/L8078compilado.htm"}]
ich weiß, dass der Ausgang, weil ich $emparray[] = array_map('utf8_encode', $row);
haben codiert wird, aber wenn Ich benutze das nicht, der Text, der spezielle Zeichen hat, wird NULL.
Wie kann ich konvertieren
"titulo":"C\u00f3digo de Defesa do Consumidor"
zu
"titulo":"Código de Defesa do Consumidor"
Ich habe versucht:
new String(result.getBytes(), "UTF-8");
aber nichts
geändert
versuchen gesetzt Header Ihres 'myserver.php' als' header ('Content-Type: application/json; charset = utf-8 '); 'schreibe diese Zeile oben (erste Zeile) – Akam
Wie wäre es mit' mysql_set_charset' oder' mysqli :: set_charset', UTF-8 als Standard-Zeichensatz für alle MySQL-Verbindungen zu setzen? – user1219801
Mögliches Duplikat von [UTF-8 durchgehend] (http://stackoverflow.com/questions/279170/utf-8-all-the-way-through) –