Position actuelle: Accueil> Derniers articles> Moyen efficace de résoudre le problème du chinois brouillé en Android et PHP

Moyen efficace de résoudre le problème du chinois brouillé en Android et PHP

gitbox 2025-06-27

Applications Android et PHP Chinois Bragled Problem and Solutions

Le code brouillé chinois est un problème courant lorsque les applications Android interagissent avec les bases de données backend PHP. Cet article introduira une variété de méthodes pratiques pour aider les développeurs à éviter et à résoudre le code brouillé chinois et à garantir l'exactitude de la transmission des données.

Configuration du jeu de caractères de la base de données

Lorsque le côté PHP obtient des données de la base de données, les données sont généralement codées au format UTF-8. Par conséquent, il est le plus important de s'assurer que le jeu de caractères de la base de données et des tables de données est défini sur UTF8 ou UTF8MB4.

Configuration du jeu de caractères MySQL

Ajoutez la configuration suivante dans le fichier de configuration MySQL My.cnf :

 [mysqld]
personnage-set-server = utf8
collation-server = utf8_general_ci

Redémarrez le service MySQL après modification. Vérifiez les paramètres du jeu de caractères en exécutant la commande SQL suivante:

 Montrer des variables comme «% de caractère%»;

Si le caractère de caractère dans le résultat renvoyé est UTF8 ou UTF8MB4, la configuration est réussie.

Définition des caractères définis dans PHP

Après se connecter à la base de données, il est recommandé de définir explicitement le jeu de caractères sur UTF8 dans le code PHP pour s'assurer que le code d'interaction des données est cohérent:

<?php
$conn = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
mysqli_set_charset($conn, "utf8");
?>

Définir les ensembles de caractères dans les applications Android

Lors de l'envoi de demandes HTTP du côté Android, vous devez également spécifier le codage des caractères en tant que UTF-8 pour empêcher le code brouillé pendant les demandes et les réponses.

Utilisation de httpurlconnection

 essayer {
    Url url = new URL ("http://www.example.com");
    HttpurlConnection Connection = (httpurlConnection) url.openconnection ();
    connection.setRequestMethod ("get");
    connection.setRequestProperty ("accepter-charset", "utf-8");
    InputStream ResponseInputStream = Connection.getInputStream ();
} catch (ioexception e) {
    e.printStackTrace ();
}

Utilisation de httpclient

 essayer {
    DefaulthTTPClient httpClient = new DefaulthTTPClient ();
    Httpget httpget = new httpget ("http://www.example.com");
    httpget.sethEader ("accepter-charset", "utf-8");
    HttpResponse Response = httpClient.Execute (httpget);
    Httpentity Entity = Response.getEntity ();
    InputStream inputStream = entity.getContent ();
} catch (ioexception e) {
    e.printStackTrace ();
}

Encodage d'URL de chinois

Une autre solution courante consiste à encoder URL du contenu chinois pour éviter le code brouillé pendant la transmission. Dans Android, vous pouvez utiliser java.net.urlencoder :

 String str = "chaîne chinoise";
String EncodedStr = urLencoder.encode (str, "utf-8");

Après avoir reçu du côté PHP, utilisez la fonction UrLDEcode pour décoder:

 $ str = "URL% 20% E7% BC% 96% E7% A0% 81";
$ decodedStr = urlDECODE ($ str);

Résumer

En définissant raisonnablement le jeu de caractères de la base de données MySQL, le jeu de caractères de connexion PHP et en spécifiant explicitement le codage de demande sur le client Android, le problème des chinois brouillés peut être évité efficacement. De plus, le codage d'URL en chinois est également une méthode auxiliaire pratique. Au cours du processus de développement, les solutions ci-dessus sont adoptées de manière flexible en fonction des besoins réels, ce qui peut garantir la précision et la stabilité de la transmission des données.