当前位置: 首页 > 面试题库 >

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

勾学博
2023-03-14
问题内容

我有一个简单的表单,可以在其中键入一些字符。这些字符被发送到执行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>


 类似资料:
  • 在testajax.java中(位置:webapps/servlets/,是编译的): 在HTML(JavaScript)中: 在web.xml中: 症状: 我已经检查了一百万次代码和部署,仍然没有发现任何线索。 请你把这个问题弄清楚,我将不胜感激!

  • 问题内容: 我有一个json字符串im可以通过简单的eval(string)转换为对象; 我正在尝试像这样访问它 我的问题是javascript不喜欢字段名中的#。是否可以访问它? 问题答案:

  • 问题内容: 我正在redis中进行setbit操作,以标记特定日期哪些用户在线。 我正在做一个redis get操作来获取密钥的值。 输出是 我的问题是在“ h”键处设置了第0位1。它应该返回128但返回65533。为什么这样? 我的最终目标是从redis中以二进制形式获取位图,以便我可以确定在特定日期哪些用户处于活动状态。 问题答案: 发生此错误是由于utf-8编码。当我们将第0位设置为1时,它

  • 我有一个活动使用“adjustPan”作为其调整大小配置,我需要在不使用“adjustResize”的情况下计算键盘高度,因为我需要将某些视图保留为全屏(这意味着它们应该保留在原位,键盘应该隐藏它们),并将视图放在键盘正上方。我们的应用程序有一个消息按钮,我通过按钮点击打开键盘。当它发生时,我使用OnGlobalLayoutListener并使用“getWindowVisibleDisplayFr

  • 我在使用FPDF库生成pdf文件时得到了这个输出。 %PDF-1.3.0 obj 我的代码: