当前位置: 首页 > 面试题库 >

HttpServletRequest UTF-8编码

柳逸春
2023-03-14
问题内容

我想从请求中获取参数(带有重音符的字符),但是它不起作用。我尝试使用,request.setCharacterEncoding("UTF-8")但也没有用。

我知道URLDecoder.decode(request.getQueryString(),"UTF-8")返回正确的字符,但request.getParameterValues()不起作用!

有人有主意吗?


问题答案:

Paul的建议似乎是最好的做法,但如果要解决此问题,则根本不需要URLEncoder或URLDecoder:

String item = request.getParameter("param");

byte[] bytes = item.getBytes(StandardCharsets.ISO_8859_1);
item = new String(bytes, StandardCharsets.UTF_8);

// Java 6:
// byte[] bytes = item.getBytes("ISO-8859-1");
// item = new String(bytes, "UTF-8");

更新: 由于获得了很多选票,我想强调BalusC的观点,即这绝对不是解决方案。充其量是一种解决方法。人们不应该这样做。

我不知道是什么引起了最初的问题,但是我怀疑URL已经被UTF-8编码,然后又被UTF-8编码。



 类似资料:
  • 编译 脚本模式 命名函数 函数捕捉 默认参数 Elixir中我们把许多函数组织成一个模块。我们在前几章已经提到了许多模块, 如String模块: iex> String.length "hello" 5 创建自己的模块,用defmodule宏。用def宏在其中定义函数: iex> defmodule Math do ...> def sum(a, b) do ...> a + b ..

  • 问题内容: 我正在用python做一些脚本。我创建一个保存在文件中的字符串。这个字符串有很多数据,来自目录的树状结构和文件名。根据convmv的介绍,我所有的树状结构都是UTF-8。 我想将所有内容都保留在UTF-8中,因为之后我将其保存在MySQL中。现在,在UTF-8的MySQL中,我遇到了一些字符问题(例如é或è-我是法语)。 我希望python始终将字符串用作UTF-8。我在互联网上阅读了

  • 问题内容: 使用UTF-8编码创建字符串时存在不一致的地方。 运行此代码: 在Java 1.8.0_20(及更早版本)上,我们得到结果 在Java 1.7和1.6上,我们得到正确的结果: 您遇到此错误了吗?有没有解决方法? 对于Shift_JIS,JIS_X0212-1990,x-IBM300,x-IBM834,x-IBM942,x-IBM942C,x-JIS0208来说,这种不一致也很明显,但显

  • 问题内容: 我想编码一个可能是图像或任何pdf的文件并将其发送到服务器。我必须遵循哪种类型的编码和解码。(服务器和客户端都在我们公司内。我们可以在两个地方都写逻辑)。Java默认情况下支持 UTF-8编码 。并使用 Base-64 编码,我必须导入外部jar。对于简单的文本,两种方法都可以正常工作。我正在使用tcp套接字编程。 使用UTF-8编码 使用Base-64(使用Apache的common

  • 本章是由 Alex Cabal 最初撰写在 PHP Best Practices 中的,我们使用它作为进行建议的基础。 这不是在开玩笑。请小心、仔细并且前后一致地处理它。 目前,PHP 仍未在底层实现对 Unicode 的支持。虽然有很多途径可以确保 UTF-8 字符串能够被正确地处理,但这并不是很简单的事情,通常需要对 Web 应用进行全方面的检查,从 HTML 到 SQL 再到 PHP。我们将

  • 问题内容: 目前,我正在尝试开始使用Spring MVC。在尝试时,我遇到了编码问题。 我想在我的JSP页面上显示UTF-8字符,所以我在ModelAndView中添加了一个带有UTF-8字符的字符串。看起来像这样: 在JSP页面上,我只想显示具有UTF-8字符的字符串,如下所示: 结果,我得到以下结果: 请注意,下面的代码显示没有编码错误。我还在Springsource Tool Suite中将