Android - 如何在 android 中将字符串转换为 utf-8

Android - How to Convert String to utf-8 in android

我无法在 android 中将字符串转换为 UTF-8。请帮助我!!

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

结果:%EF%BF%BDO%EF%BF%BD_%EF%BF%BD%EF%BF%BD

但是“臺北市”应该编码为“%E8%87%BA%E5%8C%97%E5%B8%82

http://developer.android.com/reference/java/net/URLEncoder.html 中,您可以看到您使用的已弃用,您应该使用 static String encode(String s, String charsetName)

所以 URLEncoder.encode("臺北市", "utf-8") 应该可以解决问题。

使用这个:

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

}

您可以使用 StringFormatter class 将您的字符串转换为您的代码。

您想转换为 UTF-8:

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

您想将 UTF-8 转换为普通格式:

String normal=StringFormatter.convertUTF8ToString(normal);