Kaa*_*zia 2 string jsp utf-8 diacritics character-encoding
我从JSP页面上的文本输入字段获取输入,该字段可以包含Umlaute.(例如Ä,Ö,Ü,ä,ö,ü,ß).
处理输入对非Umlaute工作正常.但是,只要在输入字段中输入变音符号,就会传递不正确的值.
例如:
在我看来,好像UTF-8十六进制编码(对于"ä"而言是c3 a4)被用于转换.
如何检索正确的值?
以下是当前实现的片段:
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>
Run Code Online (Sandbox Code Playgroud)
该值从args中检索并转换为字符串:
UUID pk = UUID.fromString(args.get("pk")); //$NON-NLS-1$
String value = args.get(pk.toString());
Run Code Online (Sandbox Code Playgroud)
注意:保存在数据库中的元音可以在页面上正确显示.
注意:保存在数据库中的元音可以在页面上正确显示.
由于这个事实,我假设你已经通过<%@page pageEncoding="UTF-8"%>JSP或<jsp-config>in中正确地将响应编码设置为UTF-8 web.xml.
留下请求编码.如果你使用GET或POST,你的问题和代码都不清楚.如果您正在使用POST,那么您需要创建一个显式设置HTTP请求主体编码的servlet过滤器:
request.setCharacterEncoding("UTF-8");
Run Code Online (Sandbox Code Playgroud)
或者,如果您正在使用GET,那么您需要深入了解服务器配置以将URI /参数编码设置为UTF-8.如何做到这一点取决于使用的服务器,问题也不清楚,更不用说你的问题历史了.因此,我只举一个Tomcat的例子:在Tomcat中设置元素的URIEncoding属性:<Connector>/conf/server.xml
<Connector ... URIEncoding="UTF-8">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2680 次 |
| 最近记录: |