Tomcat 文本文件编码

Tomcat text file encoding

我有一个 java 网络应用程序,它从磁盘上的文件和 returns 读取所需的值。磁盘上的文件包含 UTF-8 字符。

文件内容示例:

lähedus teeb korterist atraktiivse üüriobjekti välismaalastele

当 webapp 在 localhost* 上 运行 时,servlet 从磁盘读取 returns:

lähedus teeb korterist atraktiivse üüriobjekti välismaalastele

当我 运行 同一应用程序在单独的服务器上发出相同的请求时 returns 这个:

l??hedus teeb korterist atraktiivse ????riobjekti v??lismaalastele

这纯粹是一个编码问题,但我不知道如何解决。

我尝试过的:

但这并没有帮助。 我应该在配置中更改什么才能使其在服务器上也能正常工作? 谢谢!

编辑

我正在读取服务器上包含 json 字符串的 txt 文件。 我正在使用 java BufferReader 来读取内容。正如我在评论中提到的,这个问题不是由 reader 引起的,因为在本地主机上也是如此。

我正在通过一个 servlet 发送响应,它只是刷新 json 字符串。同样的故事与 reader.

我在发出请求的任何客户端(浏览器、android 等)上都收到问号。

您的本地文件似乎是 UTF-8,错误地转换为某些单字节编码。正如一个特殊字符的多字节序列导致两个不可转换的字符 (?).

应用程序在没有指定编码的情况下读取它,因此使用系统的编码。那不是你想要的。

然后你需要找到错误的阅读代码:通常有一个重载的方法可以在其中添加编码。然而臭名昭著的是 FileReader,该实用程序 class 始终使用默认编码。检查出现的次数:

  • InputStreamReader
  • 新字符串
  • String.getBytes
  • 扫描仪

为了良好的秩序,但此处可能并非如此:任何产生该文本的响应都应在内容类型中指定字符集。