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
这纯粹是一个编码问题,但我不知道如何解决。
我尝试过的:
我将此添加到 config/server。xml
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"
URIEncoding="UTF-8"/> <!-- THIS PART
但这并没有帮助。
我应该在配置中更改什么才能使其在服务器上也能正常工作?
谢谢!
编辑
我正在读取服务器上包含 json 字符串的 txt 文件。
我正在使用 java BufferReader 来读取内容。正如我在评论中提到的,这个问题不是由 reader 引起的,因为在本地主机上也是如此。
我正在通过一个 servlet 发送响应,它只是刷新 json 字符串。同样的故事与 reader.
我在发出请求的任何客户端(浏览器、android 等)上都收到问号。
您的本地文件似乎是 UTF-8,错误地转换为某些单字节编码。正如一个特殊字符的多字节序列导致两个不可转换的字符 (?
).
应用程序在没有指定编码的情况下读取它,因此使用系统的编码。那不是你想要的。
然后你需要找到错误的阅读代码:通常有一个重载的方法可以在其中添加编码。然而臭名昭著的是 FileReader,该实用程序 class 始终使用默认编码。检查出现的次数:
- InputStreamReader
- 新字符串
- String.getBytes
- 扫描仪
为了良好的秩序,但此处可能并非如此:任何产生该文本的响应都应在内容类型中指定字符集。
我有一个 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
这纯粹是一个编码问题,但我不知道如何解决。
我尝试过的:
我将此添加到 config/server。xml
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <!-- THIS PART
但这并没有帮助。 我应该在配置中更改什么才能使其在服务器上也能正常工作? 谢谢!
编辑
我正在读取服务器上包含 json 字符串的 txt 文件。 我正在使用 java BufferReader 来读取内容。正如我在评论中提到的,这个问题不是由 reader 引起的,因为在本地主机上也是如此。
我正在通过一个 servlet 发送响应,它只是刷新 json 字符串。同样的故事与 reader.
我在发出请求的任何客户端(浏览器、android 等)上都收到问号。
您的本地文件似乎是 UTF-8,错误地转换为某些单字节编码。正如一个特殊字符的多字节序列导致两个不可转换的字符 (?
).
应用程序在没有指定编码的情况下读取它,因此使用系统的编码。那不是你想要的。
然后你需要找到错误的阅读代码:通常有一个重载的方法可以在其中添加编码。然而臭名昭著的是 FileReader,该实用程序 class 始终使用默认编码。检查出现的次数:
- InputStreamReader
- 新字符串
- String.getBytes
- 扫描仪
为了良好的秩序,但此处可能并非如此:任何产生该文本的响应都应在内容类型中指定字符集。