我正在从 JSP 页面上的文本输入字段中获取输入,该字段可能包含变音符号。(例如 Ä,Ö,Ü,ä,ö,ü,ß)。
处理输入适用于非元音变音。但是,每当在输入字段中输入元音变音时,就会传递一个不正确的值。
例如:
- 如果在输入字段中输入了“ä”(UTF-8:U+00E4) ,
- 从参数中提取的字符串是“ä”(UTF-8:U+00C3 和 U+00A4)
在我看来,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>
该值从 args 中检索并转换为字符串:
UUID pk = UUID.fromString(args.get("pk")); //$NON-NLS-1$
String value = args.get(pk.toString());
注意:保存在数据库中的变音符号会正确显示在页面上。