Android - Как конвертировать строку в utf-8 в android

Я не могу преобразовать строку в UTF-8 в android. пожалуйста, помогите мне!!

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

результат : %EF%BF%BDO%EF%BF%BD_%EF%BF%BD%EF%BF%BD

но "臺北市 "должно быть закодировано как"%E8%87%BA%E5%8C%97%E5%B8%82"

4 ответов


в http://developer.android.com/reference/java/net/URLEncoder.html Вы можете прочитать, что вы использовали устарел и что вы должны использовать static String encode(String s, String charsetName)

Так URLEncoder.encode("臺北市", "utf-8") следует сделать трюк.


Вы можете просто использовать

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

Это позволит закодировать "строку в формате UTF-8.

поместите его в try / catch и проверьте IllegalArgumentException, если хотите. И если у вас есть пробелы в строке, пожалуйста, замените его на

string.replace(" ", "%20");

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;
    }

}

You can convert your string using StringFormatter class to your code.
=> You want to convert to UTF-8:
String normal="This normal string".
String utf=StringFormatter.convertStringToUTF8(normal);

=> You want to convert UTF-8 to normal fromat:
String normal=StringFormatter.convertUTF8ToString(normal);

используйте этот:

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