java - 如何从 html 对象标签内部编码/解码查询字符串?

标签 java html jsp servlets jstl

我有一个对象标记,我正在使用它的数据属性来调用 servlet,如下面的代码所示。 我正在向此 url 传递一个参数。 例如,如果此参数的值不是英语 > 阿拉伯语。 然后当我在指定的 servlet 中获取此参数值时 > 它的值看起来像这样“ÙŠØØØ¡ التØقق من.pdf”

我尝试添加一些其他查询字符串参数,例如 &&useUnicode=是&&characterEncoding=UTF-8 到网址但没有运气。 我也尝试使用一些代码,例如 request.setCharacterEncoding("UTF-8"); 到 servlet 但也没有运气。

这就是我的代码的样子:

<object data="servletName.ex?fileName=${fileNameValue}">click</object>

当我获取文件名参数的值时,我想获取阿拉伯语值。

最佳答案

您需要对fileNameValue进行URL编码。您无法通过将此信息添加到 URL 来告诉服务器该 URL 使用哪种编码。服务器需要在读取查询之前知道 - 这是不可能的。 ;) 如今,您可以放心地假设服务器需要 UTF-8。有道理 - 它应该准备好理解那些 2 字节 Unicode 序列。唯一的问题是:URL 不允许包含这些字符。这就是 URL 编码/百分比转义的原因。

如果您的文件名是“Über” - 您的请求将是:“%C3%9Cber”。这是第一个特殊字符的 2 字节 url 编码 utf-8 编码值。

关于java - 如何从 html 对象标签内部编码/解码查询字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56113818/

相关文章:

java - 如何将所有属性从一个 JavaBean 复制到另一个具有不同属性名称的 JavaBean?

html - 我可以更改初始包含 block 的大小吗?

html - 使用 angularjs 过滤两个选定日期之间的表数据时出现问题

java - 如何将对象从 Spring 3.0 Controller 传递到 JSP View 并使用 JSTL 进行测试

java - IntelliJ IDEA - SpringBoot 项目/找不到要转到的声明

java - 关闭jsp窗口

java - 将配置文件转换为 HTML

java - JTable 面板中显示白框,原因不明

java - 使用 NetBeans 启动 JBoss 服务器

html - 在固定的 50% 居中图像中居中文本