一尘不染

如何让Tomcat从Mac键盘理解MacRoman(x-mac-roman)字符集?

tomcat

我的Mac键盘将x-mac-roman字符集发送给Tomcat。有没有一种方法可以迫使我的浏览器或tomcat以某种方式了解我在Mac上键入的内容?


阅读 418

收藏
2020-06-16

共1个答案

一尘不染

请改用UTF-8。每个自重的客户端 服务器端操作系统平台都可以理解。如今,它也被视为标准字符编码。Tomcat仍默认使用旧的ISO
8859-1字符集来解码GET请求参数,而服务器平台的默认编码则是解码POST请求参数。

要设置GET请求编码,请在Tomcat的中编辑所需的HTTP连接器/conf/server.xml

<Connector ... URIEncoding="UTF-8">

要设置POST请求编码,请创建一个servlet过滤器,该过滤器基本上在doFilter()方法中执行以下操作,并将其映射到与所有POST请求匹配的URL模式上,例如*.jsp/*

request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);

要告诉JSP在生成响应时使用指定的编码(您仍然需要确保使用完全相同的编码来保存JSP文件),这将隐式告诉客户端使用UTF-8来解释响应并编码响应。后续请求,请在每个JSP的顶部设置以下内容:

<%@page pageEncoding="UTF-8"%>

或在webapp的中设置以下配置条目web.xml,以便将其应用于每个单个JSP:

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <page-encoding>UTF-8</page-encoding>
    </jsp-property-group>
</jsp-config>

如果您碰巧使用了数据库,也不要忘记在其中设置正确的编码。

也可以看看:

2020-06-16