在 android 中使用 UTF-8 编码字符串时使用哪种解决方案?
Which solution to use at the time of encoding string using UTF - 8 in android?
每当我尝试使用 UTF-8 编码或解码字符串时,它都会显示未处理的异常:UnsupportedEncodingException。
所以 Android Studio 给了我两个解决方案,它们是
1) 使用抛出 UnsupportedEncodingException
2) 将那段代码放在 try catch 与 UnsupportedEncodingException 作为 catch 参数之间..
那么使用哪一个是好的做法,为什么?
public static String getEncodedString(String strOriginal) throws UnsupportedEncodingException {
byte[] dataFirstName = strOriginal.getBytes("UTF-8");
return Base64.encodeToString(dataFirstName, Base64.DEFAULT);
}
或
public static String getEncodedString(String strOriginal) {
byte[] dataFirstName = new byte[0];
try {
dataFirstName = strOriginal.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return Base64.encodeToString(dataFirstName, Base64.DEFAULT);
}
我会选择第二个片段,UTF-8 是每个平台都支持的标准字符编码之一,因此实际上永远不会发生异常。进一步传播它没有意义。
如果您正在为 API 19 或更高版本开发,您也可以使用
strOriginal.getBytes(StandardCharsets.UTF_8)
不会抛出异常。
每当我尝试使用 UTF-8 编码或解码字符串时,它都会显示未处理的异常:UnsupportedEncodingException。
所以 Android Studio 给了我两个解决方案,它们是
1) 使用抛出 UnsupportedEncodingException 2) 将那段代码放在 try catch 与 UnsupportedEncodingException 作为 catch 参数之间..
那么使用哪一个是好的做法,为什么?
public static String getEncodedString(String strOriginal) throws UnsupportedEncodingException {
byte[] dataFirstName = strOriginal.getBytes("UTF-8");
return Base64.encodeToString(dataFirstName, Base64.DEFAULT);
}
或
public static String getEncodedString(String strOriginal) {
byte[] dataFirstName = new byte[0];
try {
dataFirstName = strOriginal.getBytes("UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return Base64.encodeToString(dataFirstName, Base64.DEFAULT);
}
我会选择第二个片段,UTF-8 是每个平台都支持的标准字符编码之一,因此实际上永远不会发生异常。进一步传播它没有意义。
如果您正在为 API 19 或更高版本开发,您也可以使用
strOriginal.getBytes(StandardCharsets.UTF_8)
不会抛出异常。