我有一个对象标记,我正在使用它的data属性来调用servlet,例如下面的代码。 我将参数传递给此url。 例如,如果此参数的值不是英语>阿拉伯语。 然后当我在指定的servlet中获得此参数值时>它的值看起来像这样的“يجبال تØققمن.pdf”
我尝试添加其他一些查询字符串参数,例如 && useUnicode =是&& characterEncoding = UTF-8 到网址,但没有运气。 我也尝试使用一些代码,例如 request.setCharacterEncoding(“ UTF-8”); 到servlet,但也没有运气。
这是我的代码的样子:
<object data="servletName.ex?fileName=${fileNameValue}">click</object>
我想获得文件名参数的值时的阿拉伯值。
答案 0 :(得分:0)
您需要对 fileNameValue 进行URL编码。您无法通过将此信息添加到URL来告诉服务器该URL使用哪种编码。服务器在读取查询之前需要知道-这是不可能的。 ;)如今,您可以放心地假设服务器期望使用UTF-8。很有道理-应该准备好理解那些2字节的Unicode序列。唯一要注意的是:URL不允许包含那些字符。这就是URL编码/百分比转义的原因。
如果文件名是“Über”-您的请求将是:“%C3%9Cber”。这是第一个特殊字符的2字节url编码的utf-8编码值。