一個關於 Web 應用國際化的問題
我從 Sun 的WebService 教材中看到以下這段話:
Ref:http://java.sun.com/webservices/docs/1.2/tutorial/doc/index.html
但是我覺得很奇怪,Server 端怎麼才知道 Client 使用的 Charset 是什麼呢?
雖然我們可以透過 accept-language Header 知道使用者的語言偏好,但是這不能說明使用者提交時使用的是相應的 Encoding 啊,如果不能判斷使用者提交時用的 Encoding 是什麼,那這個 setRequestEncoding 的用處就不大了?
Request Encoding
The request encoding is the character encoding in which parameters in an incoming request are interpreted. Currently, many browsers do not send a request encoding qualifier with the Content-Type header. In such cases, a Web container will use the default encoding--ISO-8859-1--to parse request data.
If the client hasn't set character encoding and the request data is encoded with a different encoding than the default, the data won't be interpreted correctly. To remedy this situation, you can use the ServletRequest.setCharacterEncoding(String enc) method to override the character encoding supplied by the container. This method must be called prior to reading request parameters or reading input using getReader. To control the request encoding from JSP pages, you can use the JSTL fmt:requestEncoding tag.
This method must be called prior to parsing any request parameters or reading any input from the request. Calling this method once data has been read will not affect the encoding.
Ref:http://java.sun.com/webservices/docs/1.2/tutorial/doc/index.html
但是我覺得很奇怪,Server 端怎麼才知道 Client 使用的 Charset 是什麼呢?
雖然我們可以透過 accept-language Header 知道使用者的語言偏好,但是這不能說明使用者提交時使用的是相應的 Encoding 啊,如果不能判斷使用者提交時用的 Encoding 是什麼,那這個 setRequestEncoding 的用處就不大了?
Request Encoding
The request encoding is the character encoding in which parameters in an incoming request are interpreted. Currently, many browsers do not send a request encoding qualifier with the Content-Type header. In such cases, a Web container will use the default encoding--ISO-8859-1--to parse request data.
If the client hasn't set character encoding and the request data is encoded with a different encoding than the default, the data won't be interpreted correctly. To remedy this situation, you can use the ServletRequest.setCharacterEncoding(String enc) method to override the character encoding supplied by the container. This method must be called prior to reading request parameters or reading input using getReader. To control the request encoding from JSP pages, you can use the JSTL fmt:requestEncoding tag.
This method must be called prior to parsing any request parameters or reading any input from the request. Calling this method once data has been read will not affect the encoding.
相關文章
- [求助]關於系統的國際化問題
- 請教關於JFileChooser控制元件的國際化問題控制元件
- 請問一個關於web的管理系統的問題Web
- 爭用!!!!一個關於JDBC的問題!JDBC
- 基於SpringBoot的國際化應用Spring Boot
- 問一個關於SSH整合是在action中應用session的問題Session
- 一種國際化Qt應用程式的方法QT
- 關於教程的一個問題
- Java的國際化問題 (轉)Java
- 關於web start的問題Web
- 一個jboss的應用問題
- 關於Integer面試的一個問題面試
- 一個關於Java Excel的問題JavaExcel
- 一個關於SessionBean呼叫的問題。SessionBean
- 一個關於prototype模式的問題?模式
- Web應用開發中的幾個問題Web
- 關於 Angular 應用 Components 和 Directives 的例項化問題Angular
- 關於一個網友最佳化問題的解決
- 請高手指教,關於Web應用程式的資源保護問題^_^Web
- 問一個關於hibernate的OracleDialect問題Oracle
- 關於 Web 應用的 Prerender 策略Web
- 一個模式應用問題模式
- 關於一個歸檔問題?
- 求助關於JdonFrameworkTest的一個問題Framework
- 關於系統效能的一個問題
- 一個關於jdbc2的問題JDBC
- 關於jdbc的一個問題,高手解惑JDBC
- 關於抽象工廠的一個問題?抽象
- 關於singleton模式的一個問題?模式
- 碰到一個棘手的問題——關於httpclient。HTTPclient
- 一個解決VC++程式國際化的類,解決亂碼問題C++
- 國際工程專案風險管理應研究的幾個問題(轉)
- 關於web應用的static變數Web變數
- MFC軟體國際化的幾個問題及其解決方案
- 一個一直困惑的關於jdbc in 的問題JDBC
- Elasticsearch中關於transform的一個問題分析ElasticsearchORM
- 關於介面實現的一個小問題
- 關於vue事件監聽的一個問題Vue事件