|
|
1
0
我不确定你的情况。在Java中,一个字符串是Unicode,一个只处理字符集转换,当必须从字符串转换为/从二进制表示转换。 在您的示例中,当调用getSimpleParamValue(“some_input_param_from_get”)时,inputData应该已经具有“correct”字符串,从字节流(从客户端浏览器传输到Web服务器)到字符串的转换应该已经参与(Web服务器的响应性+应用程序的Web层)。 为此,我对Web传输强制使用UTF-8,在web.xml中放置一个过滤器(struts之前),例如:
如果无法执行此操作,并且在字符集转换(例如:假定字节流是UTF-8,是Windows-1250)中,如果getSimpleParamValue()“errs”,则现在有一个“不正确”字符串,必须尝试通过撤消和重做字节到字符串的转换来恢复该字符串-在这种情况下,必须知道错误和正确的字符集-以及,worse,处理丢失字符的可能性(如果它被解释为utf8,我会发现非法字符序列)。 如果您必须在struts2操作中处理这个问题,我会说您遇到了问题,您应该在它之前/之后(在上层Web层中,或者在数据库驱动程序或文件编码中)明确地处理它。 |