Je construis une chaîne avec une valeur que je reçois d'une autre activité:Android/java: string url ne fonctionne pas dans HttpGet (url)
Bundle b = getIntent().getExtras();
value = b.getString("bundledata");
url = "http://dl.dropbox.com/u/xxx/apptextfiles/";
url += value;
url += ".txt";
donc, l'url de chaîne ressemble http://dl.dropbox.com/u/xxx/apptextfiles/LFC2.txt
plus tard sur j'essaye de lire le textfile avec HttpGet request = new HttpGet (url) - et le plantage de l'application. La chose étrange est que si j'écris url = "http://dl.dropbox.com/u/xxx/apptextfiles/LFC2.txt" cela fonctionne très bien, mais pas si je le construis comme ci-dessus. En fait, si je prends la valeur d'URL de l'éclipse et la mets dans un navigateur, elle change en http://dl.dropbox.com/u/xxx/apptextfiles/%EF%BB%BFLFC2.txt - pourquoi ?? Cela ressemble à un problème d'encodage étrange? La valeur de chaîne que je reçois de l'autre activité provient également d'un fichier texte en ligne. Quelqu'un a une idée sur la façon de résoudre ce problème?
J'ai essayé de vérifier la valeur de la chaîne avec 'codedString = URLEncoder.encode (valeur," UTF-8 ");' et encodedString est% EF% BB% BFLFC2. Comment puis-je 'dépouiller' ces% EF% BB% BF cachés, donc je finis seulement avec LFC2? : 0) – bengaard
Vous pourriez simplement dépouiller la chaîne des 3 premiers caractères en faisant une sous-chaîne. Mais vous devriez vraiment essayer de vous assurer que votre source de la chaîne ne contient pas de caractères spéciaux. – Kal
Merci pour votre aide! Je vais juste utiliser 'encodedString = URLEncoder.encode (valeur," UTF-8 "). Substring (9);' pour l'instant, cela fonctionne. Je ne peux pas comprendre d'où vient cet encodage supplémentaire .. – bengaard