首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >MultipartEntityBuilder和字符集

MultipartEntityBuilder和字符集
EN

Stack Overflow用户
提问于 2013-10-10 17:36:30
回答 4查看 18.5K关注 0票数 23

我升级了httpmime包,现在我的字符串不再以UTF-8格式发送或接收

代码语言:javascript
复制
MultipartEntityBuilder entity = MultipartEntityBuilder.create();
Charset chars = Charset.forName("UTF-8");
entity.setCharset(chars);
entity.addTextBody("some_text", some_text);

HttpPost httppost = new HttpPost(url); 
httppost.setEntity(entity.build());
...and so on..

我遗漏了什么?我过去常常构建一个stringbody并在字符串体中设置字符集,但现在不推荐这样做了,而且它似乎不起作用

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-10 19:21:56

解决了这个问题:)事实证明ContentType现在很重要,我发送的文本是纯文本,还有一些文本是JSON,

对于纯文本,您可以使用:

代码语言:javascript
复制
entity.addTextBody("plain_text",plain_text,ContentType.TEXT_PLAIN);

对于JSON:

代码语言:javascript
复制
entity.addTextBody("json_text",json_text,ContentType.APPLICATION_JSON);

这样,字符集也可以在JSON字符串上工作(很奇怪,但现在可以了)

票数 23
EN

Stack Overflow用户

发布于 2014-01-09 20:34:59

代码语言:javascript
复制
entity.addTextBody("plain_text", plain_text);

将使用默认的ContentType.TEXT_PLAIN,如下所示...

代码语言:javascript
复制
public static final ContentType TEXT_PLAIN = ContentType.create("text/plain", Consts.ISO_8859_1);

而ContentType.APPLICATION_JSON正在使用UTF-8,如下所示

代码语言:javascript
复制
public static final ContentType APPLICATION_JSON = ContentType.create("application/json", Consts.UTF_8);

所以我所做的就是像这样创建我们自己的ContentType。

代码语言:javascript
复制
entity.addTextBody("plain_text", plain_text, ContentType.create("text/plain", MIME.UTF8_CHARSET));
票数 20
EN

Stack Overflow用户

发布于 2016-10-07 22:25:37

对于那些说公认的解决方案对他们不起作用(对我也不起作用)的人,我用一种不同的方式解决了这个问题,使用:

代码语言:javascript
复制
builder.addTextBody(key, שלום, ContentType.TEXT_PLAIN.withCharset("UTF-8"));
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19292169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档