Java 如何让tomcat从我的mac键盘上理解MacRoman(x-mac-roman)字符集?

Java 如何让tomcat从我的mac键盘上理解MacRoman(x-mac-roman)字符集?,java,macos,tomcat,servlets,character-encoding,Java,Macos,Tomcat,Servlets,Character Encoding,我的Mac键盘将x-Mac-roman字符集发送到Tomcat。有没有办法强迫我的浏览器或tomcat以某种方式理解我在mac上键入的内容?您需要确保每个组件在每个阶段都使用相同的字符集 要强制Tomcat使用特定的字符编码,需要在连接器上设置URIEncoding。在这种情况下,您可能需要URIEncoding=“x-MacRoman” 您可能还会发现这一点很有用:问题与POST请求有关。雄猫对他们不好。修复方法:将此筛选器添加到所有请求中: SetCharacterEncoding Set

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

您需要确保每个组件在每个阶段都使用相同的字符集

要强制Tomcat使用特定的字符编码,需要在连接器上设置URIEncoding。在这种情况下,您可能需要URIEncoding=“x-MacRoman”


您可能还会发现这一点很有用:

问题与POST请求有关。雄猫对他们不好。修复方法:将此筛选器添加到所有请求中:


SetCharacterEncoding
SetCharacterEncodingFilter
编码
UTF-8
SetCharacterEncoding
/*

改用UTF-8。每个自尊心强的客户端和服务器端操作系统平台都能理解它。现在它也被认为是标准的字符编码。Tomcat仍然默认使用旧的ISO 8859-1字符集来解码GET请求参数,默认使用服务器平台默认编码来解码POST请求参数

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


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

request.setCharacterEncoding(“UTF-8”);
链式过滤器(请求、响应);
要告诉JSP在生成响应时使用指定的编码(您仍然需要确保使用完全相同的编码保存JSP文件),这将隐含地告诉客户端使用UTF-8解释响应并对后续请求进行编码,请在每个JSP的顶部设置以下内容:


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


*.jsp
UTF-8
如果您碰巧使用了数据库,也不要忘记在其中设置正确的编码

另见:

Tomcat可以很好地处理符合HTTP规范的POST。另一方面,浏览器不善于遵循规范。阅读我已经为您指出的常见问题。它包括GET和POST。将
URIEncoding
设置为Mac OS特定的字符编码将导致使用不同操作系统平台的客户端无法访问网页。
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>