Quiero para codificar una cadena en Android a UTF-8. Por ejemplo, esta cadena:
Grüne Ähren beißen Flöhe
a
Grüne Ãhren beiÃen Flöhe
Pero no importa lo que hago codificar ü U o u para% C3% BC (en línea a menudo llamada 'cruda URL Encode').
soluciones encontradas para convertir a byte [] o URI.toASCIIString (). Pero no de ellos trabajan para mí.
ACTUALIZAR
Estoy participando en la red de socios de eBay y trato a concat alguna palabra de búsqueda a la URL de mi pareja. La gente de eBay deben utilizar un juego de caracteres incorrecto, como cadena UTF-8 URL codificado no hacer el trabajo.
Una palabra de búsqueda con la codificación UTF-8 URL
(Oídos verdes morder las pulgas
a
Gr% C3% BCne% 20% C3% 84hren% 20bei% C3% 9Fen% 20FL% C3% B6he)
viene a este resultado en el cuadro de búsqueda de eBay:
Si puedo codificar mi palabra de búsqueda con iso_8859_1 funciona (Grüne Åhrén beiÃen Flöhe):
Muchas gracias comunidad
Lo que esencialmente quiere es convertir una cadena a que la representación de bytes de acuerdo con UTF-8
e interpretar estos bytes utilizando un juego de caracteres diferente, como por ejemplo ISO-8859-1
.
Esta suele ser la causa de muchos problemas. ¿Quieres hacer intencionadamente lo hacen la mayoría de los desarrolladores de forma incorrecta (o que simplemente ignoran los problemas de los juegos de caracteres).
Ya que sólo se necesita que esto funcione, utilice este pedazo de código:
byte[] bytes = "Grüne Ähren beißen Flöhe".getBytes("UTF-8");
String result = new String(bytes, "ISO-8859-1");
verlo en el trabajo aquí .