低于API 19的标准字符集为UTF-8

47

我正在使用这段代码来正确地将斯堪的纳维亚字符发布到php。

问题在于在API 19之前不支持StandardCharsets.UTF_8。

byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);

DataOutputStream wr = new DataOutputStream( con.getOutputStream());
wr.write( postData );

该字段要求API级别为19(当前最小级别为14):java.nio.charset.StandardCharsets#UTF_8

如果API级别低于19,我应该怎么做?

1个回答

91

使用Charset类的forName静态方法:

byte[] postData = urlParameters.getBytes(Charset.forName("UTF-8"));

您可以在文档中找到标准字符集列表。


1
在Android SDK 31中,Charset似乎引用了StandardCharsets并导致API低于19的崩溃。很遗憾。 - faraday
@faraday 你找到解决方案了吗?我的意思是有没有办法在SDK 31及以下版本中使用UTF-8? - Joey
1
@Joey,我尝试了不同的方法来解决它,但是尽管没有直接引用Charset,但SDK内部似乎存在间接联系。我还没有成功。 - faraday

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接