web-dev-qa-db-fra.com

Android - Comment convertir une chaîne en utf-8 dans android

Je ne peux pas convertir une chaîne en UTF-8 sous Android. Aidez-moi, s'il vous plaît!!

s1=URLEncoder.encode("臺北市")

résultat: %EF%BF%BDO%EF%BF%BD_%EF%BF%BD%EF%BF%BD

Mais "臺北市" devrait être codé comme "%E8%87%BA%E5%8C%97%E5%B8%82"

6
林子洋

Dans http://developer.Android.com/reference/Java/net/URLEncoder.html vous pouvez lire que celui que vous avez utilisé est obsolète et que vous devez utiliser static String encode(String s, String charsetName)

Donc URLEncoder.encode("臺北市", "utf-8") devrait faire l'affaire.

11
sonic

Vous pouvez simplement utiliser,

URLEncoder.encode(string, "UTF-8");

Ceci encodera votre "chaîne: au format UTF-8.

Mettez-le dans un try/catch et vérifiez pour IllegalArgumentException si vous le souhaitez. Et si vous avez des espaces dans votre chaîne, veuillez le remplacer par

string.replace(" ", "%20");
7
Aritra Roy
public class StringFormatter {

    // convert UTF-8 to internal Java String format
    public static String convertUTF8ToString(String s) {
        String out = null;
        try {
            out = new String(s.getBytes("ISO-8859-1"), "UTF-8");
        } catch (Java.io.UnsupportedEncodingException e) {
            return null;
        }
        return out;
    }

    // convert internal Java String format to UTF-8
    public static String convertStringToUTF8(String s) {
        String out = null;
        try {
            out = new String(s.getBytes("UTF-8"), "ISO-8859-1");
        } catch (Java.io.UnsupportedEncodingException e) {
            return null;
        }
        return out;
    }

}

Vous pouvez convertir votre chaîne en utilisant la classe StringFormatter en votre code.

Vous voulez convertir en UTF-8:

String normal="This normal string".
String utf=StringFormatter.convertStringToUTF8(normal);

Vous voulez convertir UTF-8 au format normal:

String normal=StringFormatter.convertUTF8ToString(normal);
7
Paras Santoki

utilisez ceci:

        URLEncoder.encode("臺北市", "UTF-8");
2
Ahmad Sanie