comment définir la chaîne de codage de caractères dans android
HI! J'ai une page web contenu encodé en ISO-8859-2. Comment faire pour convertir un flux encodé dans ce jeu de java est UTF-8. Je suis en train d'essayer le code ci-dessous, mais il ne fonctionne pas. Il bousille certains caractères. Est-il un autre moyen pour ce faire?
BufferedInputStream inp = new BufferedInputStream(in);
byte[] buffer = new byte[8192];
int len1 = 0;
try{
while ( (len1 = inp.read(buffer)) != -1 )
{
String buff = new String(buffer,0,len1,"ISO-8859-2");
stranica.append(buff);
}
- Vous devez modifier les tags de cette "Java" n'est pas "Android"
Vous devez vous connecter pour publier un commentaire.
Essayer avec un InputStreamReader et le jeu de caractères:
Si vous obtenez une
UnsupportedCharsetException
, vous savez quel est votre problème... Aussi, avecinp.getEncoding()
vous pouvez vérifier l'encodage est vraiment utilisé.ISO-8859-2
etISO8859-2
sont les deux noms valides pour que l'encodage, et Java reconnaît que les deux d'entre eux.Hypothèse erronée: Java utilise l'UTF-16 en interne, pas en UTF-8.
Mais ton code semble correct et devrait fonctionner. Êtes-vous absolument sûr que la page web est en fait codé en ISO-8859-2? Peut-être que son codage est mal déclaré.
Ou peut-être le vrai problème n'est pas avec la lecture de code que vous avez montré, mais avec le code que vous utilisez pour travailler avec le résultat. Comment et où faire ces "foiré caractères" manifeste?