這裏是一個奇怪的場景。在Java Web應用程序中爲所有jsps設置默認字符編碼
我有一個支持UTF-8字符的Java Web應用程序。這是他們展示,並且可以在應用程序中輸入
我也有其他的應用程序,訪問前一個如下基本片斷
final URL urlObject = new URL("someurlyadayada");
final URLConnection connection = urlObject.openConnection();
...
....
connection.connect();
final InputStream is = connection.getInputStream();
InputStreamReader isr = new InputStreamReader(is,"UTF8");
final OutputStream out = new FileOutputStream(new File(somelocalfile));
OutputStreamWriter osw = new OutputStreamWriter(out,"UTF8");
int read = 0;
while ((read = isr.read()) != -1) {
osw.write(read);
}
....
當給定的頁面在瀏覽器中都觀察呈現精細UTF-8人物和所有。但是,當使用上面的片段字符已損壞要麼回來作爲???????或只是錯誤的字符。
我到目前爲止所嘗試的是在輸入/輸出流編寫器上以及在應用程序中的請求和響應對象上將編碼設置爲UTF-8。
這部分工作在給定一個JPS下列行
Прочтено Прочтено,Прочтено,
<%=someJavaMethodWhichReturnsTheAboveLineAlso()%>
在瀏覽器中此呈現細如:
ПрочтеноПрочтено,Прочтено,
ПрочтеноПрочтено,Прочтено ,
但使用頁面分析器將返回
оÑÑÐμноÐÑоÑÑÐμноÑоÑÑÐμноÐÑоÑÑÐμно
ПрочтеноПрочтено,Прочтено,
如果我在我的所有網頁的JSP的頂部設置contentType="text/html;charset=UTF-8"
它解決了這兩個問題,但我有被上級告知,更新100個JSP是不可能的。
我也得到了印象,這是我應該能夠設置一次,並將其用作默認值。
這裏最好的做法是什麼。我有兩個關於在JSP上設置內容的思想。不知道這是做錯了還是我們錯了,從來沒有做過這件事。
我有一個很好看周圍的解決方案和成敗參半
刪除我以前的評論。這除了我的其他變化(輸入/輸出流似乎工作,我忘記了我已經添加了代碼嘗試設置內容類型的代碼,一旦我刪除我的代碼它的工作。 –