我有一个简单的形式,在那里我可以输入一些字符。 这些字符发送到一个servlet这做了的getBytes和打印的字节数。 一个“A”正确的UTF-8字节为-61和-93,但我得到-52和-93。 :(
我想尽一切办法了解和解决这个问题,但是毫无效果。 我的机器上一切都应该是UTF-8,所以我怀疑它与我已经用了20年的美国国际键盘做。
有没有任何智能的灵魂都从那里-52和-93线索来自来了?
固定在码头:见我的回答如下。
上破的Tomcat: 如何让Tomcat能够从我的Mac键盘明白的MacRoman(X-MAC-Roman)的字符集?
这是的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>
好了,好后8小时(!严重),它看起来像只有这样,才能得到这个工作正常是要做到:
其中一个问题是:类文件的坏Maven构建编码编译。
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
mvn clean install
和:
<%@page pageEncoding="UTF-8" %>
现在:
有没有办法可知通过后面的选项在你的pom.xml。
下面是一个未决的答案: 用于Clojure的源文件使UTF-8编码