gpt4 book ai didi

jsp - 无法从 JSP 向 Servlet 发送特殊字符 (UTF-8) : question marks displayed

转载 作者:行者123 更新时间:2023-12-01 16:18:59 25 4
gpt4 key购买 nike

我在将西里尔字母或变音符号等特殊字符从 jsp 发送到 servlet 时遇到问题。我非常感谢您的帮助。

这是我所做的:

  1. 在jsp中定义utf-8字符集:

    <%@ page language="java" contentType="text/html; charset=utf-8" 
    pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    ...

    <div class="authentication">
    <form name="registerForm" action="register" method="get" accept-charset="UTF-8">
    <input type="input" name="newUser" size="17"/>
    <input type="submit" value="senden" />
    </form>
    </div>
    ...
  2. 在 server.xml 中为连接器设置 Tomcat URIEncoding

    <Connector URIEncoding="UTF-8" ...
  3. 在 servlet 内部 - 将 CharacterEncoding 设置为 UTF 并读取请求

    public void doGet (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{

    request.setCharacterEncoding("UTF-8");
    String username = request.getParameter("newUser");
    System.out.println("encoding: "+request.getCharacterEncoding());

    System.out.println("received: "+username);
  4. 以下是使用以下示例时显示的内容:Однако

    encoding: UTF-8
    received: ??????

我错过了什么吗?我想 servlet 无法正确解码字符串,但我不知道为什么会发生这种情况。我已遵循有关此主题的所有建议,但没有运气。

提前致谢。

最佳答案

一切看起来都很好。只有 System.out.println() 控制台还需要配置为将字节流解释为 UTF-8。

如果您使用的是 Eclipse 等 IDE,则可以通过将“窗口 > 首选项 > 常规 > 工作区 > 文本文件编码”设置为 UTF-8 来实现此目的。对于其他环境,您应该更具体地说明这一点,以便我们可以告诉如何配置它。

关于jsp - 无法从 JSP 向 Servlet 发送特殊字符 (UTF-8) : question marks displayed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7539590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com