Servlet在Mac上使用US International键盘获取奇怪的字符

我有一个简单的表单,可以在其中键入一些字符。这些字符被发送到执行getBytes并打印字节的servlet。“ã”的正确UTF-8字节是-61和-93,但我得到的是-52和-93。:(

我尽一切努力来理解和解决此问题,但没有任何效果。我的机器上的所有东西都应该是UTF-8,所以我怀疑这与我使用了20年的美国国际键盘有关。

是否有任何精明的灵魂从-52和-93那里获得线索?

回答:

那是Mac OS罗马字符编码。(0xBB == -52。)

要检查的一些事情:

  • getBytes(string, "UTF-8")和new String(bytes, "UTF-8")
  • 该表格应以UTF-8发送:response.setContentType("text/html; charset="UTF-8");。在JSP中<%@page pageEncoding="UTF-8"%>
  • <form action="..." accept-charset="UTF-8">

    由于所有这些都无济于事:

在Web应用程序(web-xml)中设置请求过滤。

在pom.xml中编码:

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-compiler-plugin</artifactId>

<version>...</version>

<configuration>

<source>1.6</source>

<target>1.6</target>

<encoding>${project.build.sourceEncoding}</encoding>

</configuration>

</plugin>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-resources-plugin</artifactId>

<version>...</version>

<configuration>

<encoding>${project.build.sourceEncoding}</encoding>

</configuration>

</plugin>

...

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

</properties>

以上是 Servlet在Mac上使用US International键盘获取奇怪的字符 的全部内容, 来源链接: utcz.com/qa/409830.html

回到顶部