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

我无法在Android中将String转换为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(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");