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

林子洋*_*林子洋 7 java android encode utf-8

我无法在Android中将String转换为UTF-8.请帮我!!

s1=URLEncoder.encode("???")
Run Code Online (Sandbox Code Playgroud)

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

但" ???"应编码为" %E8%87%BA%E5%8C%97%E5%B8%82"

son*_*nic 13

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

所以URLEncoder.encode("???", "utf-8")应该做的伎俩.


小智 10

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

}
Run Code Online (Sandbox Code Playgroud)

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

您想要转换为UTF-8:

String normal="This normal string".
String utf=StringFormatter.convertStringToUTF8(normal);
Run Code Online (Sandbox Code Playgroud)

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

String normal=StringFormatter.convertUTF8ToString(normal);
Run Code Online (Sandbox Code Playgroud)


Ari*_*Roy 8

你可以使用,

URLEncoder.encode(string, "UTF-8");
Run Code Online (Sandbox Code Playgroud)

这将编码您的"字符串:UTF-8格式.

将它放在try/catch中,如果需要,检查IllegalArgumentException.如果您的字符串中有任何空格,请将其替换为

string.replace(" ", "%20");
Run Code Online (Sandbox Code Playgroud)