我需要将String转换为UTF-8。现在我的代码中有这个:
sb.append(URLEncoder.encode(smsAnswerText, "UTF-8"))
但编码方法抛出异常UnsupportedEncodingException
我重写:sb.append(smsAnswerText)
因为写this
我错了tуxt-unreadable characters
然后我尝试new String(smsAnswerText.getBytes(),StandardCharsets.UTF_8)
此方法也会抛出异常UnsupportedEncodingException
如何在没有UnsupportedEncodingException
的情况下将Sting转换为String + UTF-8?
我需要:
public static String generateBodyResponse(String smsAnswerText){
return// smsAnswerText in UTF-8
}
我有
public static String generateBodyResponse(String smsAnswerText) throws UnsupportedEncodingException{
return URLEncoder.encode(smsAnswerText, "UTF-8");
}
答案 0 :(得分:0)
我认为任何提供商都不会吞下这个例外。您可以尝试使用的替代方案
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>0.10.0</version>
<scope>compile</scope>
</dependency>
这里@SneakyThrows注释可用。使用此功能您可以避免抛出并抛出关键字
答案 1 :(得分:0)
为什么不尝试缓存块?
public static String generateBodyResponse(String smsAnswerText) {
String defaultval= "some default value which will be returned if your encod is wrong.";
try {
defaultval = URLEncoder.encode(smsAnswerText, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return defaultval;
}
或做一些像这个函数的包装类:
public class URLEncoderDecorator {
public static String encode(String smsAnswerText) {
try {
return URLEncoder.encode(smsAnswerText, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return smsAnswerText;
}
}
然后:
public static String generateBodyResponse(String smsAnswerText) {
return URLEncoderDecorator.encode(smsAnswerText, "UTF-8");
}
但两种情况都不好,因为这个例外需要了解当编码错误时如何处理它。
,你必须完全明白在这种情况发生时你必须做些什么答案 2 :(得分:0)
import java.nio.charset.StandardCharsets;
import org.apache.commons.codec.net.URLCodec;
byte[] urlEscape(String s) {
return new URLCodec().encode(s.getBytes(StandardCharsets.UTF_8));
}