2011-04-12 28 views
1

我正在使用commons FileUpload來獲取客戶端標頭。我正在嘗試使用標題字符串來編寫txt內容,如:Tomcat Servlet FileUpload和UTF-8

StringA; StringB; 「ciryllic詞」

服務器定位是ru_RU.utf-8的客戶端是CP1251 ......結果我總是讓我的客戶端(桌面應用程序)

StringA; StringB; ?????

而不是我的服務器txt文件行中的西里爾字符。如果我用IE 8打開txt並觀察編碼,西里爾文的內容只能用utf-8編碼進行讀取:(所以我的問題是我該怎麼做才能讓我的servlet寫ru_RU.utf-8可接受的字符串。在Windows上,所以我需要知道它肯定

請幫我瞭解

任何有用的註釋表示讚賞

+0

哦,我...沒人知道編碼是什麼:) – user592704 2011-04-13 13:57:18

回答

0

我可能會被誤解的問題,而是要回答這個問題的一部分 -

所以我的問題是我該怎麼做才能讓我的servlet寫入ru_RU .utf-8可接受的字符串。

您應該使用HttpServletResponse類提供的兩種方法之一。它們是:

setContentType(),例如,

response.setContentType("text/html; charset=UTF-8"); 

,或者

的setCharacterEncoding(),例如

response.setCharacterEncoding("utf-8"); 

這些方法和信息還有其他的例子,說明何時在整個地方使用它們。

+0

謝謝你,但它並沒有在服務器端幫助:(我已經嘗試過,但絕望...另一項建議? – user592704 2011-06-17 18:14:13

+0

我只是想,也許我需要檢查語言環境或使用新的String(「」,enc)編碼文本?但我不確定嗎? – user592704 2011-06-17 18:16:39

+0

...並且,是的,我已經嘗試了response.setContentType(「 text/html; charset = UTF-8「); 等,但它並沒有幫助...但它爲什麼沒有幫助? – user592704 2011-06-22 16:19:42

1

ServletOutputStream out =response.getOutputStream();
out.write((YOUrfileasstring).getBytes("UTF-8"));