带有外字符的URL的response.sendredirect-如何编码?
|
我有一个具有国际用户的jsf应用,因此表单输入中可以包含非西方字符串,例如kanjii和Chinese-如果我使用..?q =东日本大的网址,则页面上的输出是正确的,并且我看到的q输入我的表格填充得很好。但是,如果我在表单中输入相同的字符串并提交,则我的应用程序会在使用URL中的填充参数构造URL之后执行重定向回到自身(似乎是多余的,但这是由于第三方集成),但是重定向未编码正确的字符串。我有
url = new String(url.getBytes(\"ISO-8859-1\"), \"UTF-8\");
response.sendRedirect(url);
但是URL重定向最终是q = ????我在String构造函数中使用了多种编码字符串(切换了ISO和UTF-8,只是在URL中出现了一堆乱码),但似乎都无法解决我的问题。q =东日本大我需要怎么做才能正确地将q =东日本大填充到重定向中?谢谢。
没有找到相关结果
已邀请:
2 个回复
茶鬼失形
? URI中不能直接包含非ASCII字符;必须将它们转换为字节(使用特定的编码),然后进行%编码。 应该给
一个编码参数,以确保这是正确的编码。否则,您将获得默认编码,这可能是错误的,应始终避免。
该URI将在浏览器地址栏中显示为IRI“ http://example.com/query?q=东日本大”。 确保您将页面作为UTF-8提供服务(使用Content-Type标头/元),并将查询字符串输入解释为UTF-8(特定于服务器;请参见Tomcat的常见问题解答。)
捕暑句簿姓