2015-07-21 44 views
0

我想在我的android应用程序中用西里尔文符号在WINDOWS-1251中发布字段。目前我有:如何使用OkHttp库在WINDOWS-1251中发布西里尔文符号?

RequestBody formBody = new FormEncodingBuilder() 
    .add("login", user) 
    .add("pass", password) 
    .build(); 

Request request = new Request.Builder() 
    .addHeader("User-Agent", USER_AGENT) 
    .addHeader("Connection", "keep-alive") 
    .url(URL) 
    .post(formBody) 
    .build(); 

OkHttpClient client = new OkHttpClient(); 
Response response = client.newCall(request).execute(); 
if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); 
String responseBody = response.body().string(); 

我需要添加什么以便能够在这些字段中使用CP1251编码?

+0

'西里尔文符号字段'。你有哪个领域不包含utf? – greenapps

+0

我不需要UTF。正如我所说的,我需要WINDOWS 1251编码。 – whyte624

+0

是的。但Android使用utf。如果你有一个EditText,在其中键入西里尔文,并获取文本,你会得到utf-8。所以这就是为什么我想知道你从哪里得到1251文本。更好地解释你必须从什么开始.. – greenapps

回答

0

我建议你尝试在你的请求包括Content-Type头,用正确的字符集一起:

.addHeader("Content-Type", "text/plain; charset=WINDOWS-1251") 

RFC2068 14.18

+0

增加了'.addHeader(“Content-Type”,“application/x-www-form-urlencoded; charset = WINDOWS-1251”)'。它没有帮助。 – whyte624

相关问题