String 如何从JSP页面使用Umlaute正确解释参数
我从JSP页面上的文本输入字段获取输入,该字段可以包含Umlaute。(如Ä,Ö,Ü,ä,ö,ü,ß) 对于非Umlaute,处理输入效果很好。但只要在输入字段中输入Umlaut,就会传递一个不正确的值 例如:String 如何从JSP页面使用Umlaute正确解释参数,string,jsp,utf-8,character-encoding,diacritics,String,Jsp,Utf 8,Character Encoding,Diacritics,我从JSP页面上的文本输入字段获取输入,该字段可以包含Umlaute。(如Ä,Ö,Ü,ä,ö,ü,ß) 对于非Umlaute,处理输入效果很好。但只要在输入字段中输入Umlaut,就会传递一个不正确的值 例如: 如果在输入字段中输入一个“ä”(UTF-8:U+00E4) 从参数中提取的字符串是“Õ”(UTF-8:U+00C3和U+00A4) 在我看来,似乎UTF-8十六进制编码(c3 a4表示“ä”)用于转换 如何检索正确的值? 以下是当前实现的片段: JSP页面将输入值“pk”传递给
- 如果在输入字段中输入一个“ä”(UTF-8:U+00E4)
- 从参数中提取的字符串是“Õ”(UTF-8:U+00C3和U+00A4)
以下是当前实现的片段: JSP页面将输入值“pk”传递给处理逻辑:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
...
<input type="text" name="<%=pk.toString()%>" value="<%=value%>" size="70"/>
<button type="submit" title="Edit" value='Save' onclick="action.value='doSave';pk.value='<%=pk.toString()%>'"><img src="icons/run.png"/>Save</button>
注意:保存在数据库中的Umlaute将正确显示在页面上
注意:保存在数据库中的Umlaute将正确显示在页面上
由于这个事实,我假设您已经通过JSP中的
或
中的
将响应编码正确地设置为UTF-8
留下了请求编码。如果使用GET或POST,您的问题和代码都不清楚。如果使用POST,则需要创建一个显式设置HTTP请求正文编码的:
request.setCharacterEncoding("UTF-8");
或者,如果您使用的是GET,则需要深入服务器配置,将URI/参数编码设置为UTF-8。如何做到这一点取决于所使用的服务器,从问题中也不清楚,更不用说从您的问题历史记录中了。因此,我将给出一个Tomcat的示例:在Tomcat的/conf/server.xml
中设置
元素的URIEncoding
属性:
另见:
request.setCharacterEncoding("UTF-8");