2015-07-21 49 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

相關問題