java - 使用 UTF-8 编码的波兰字符仅在一个 JSP 文件中有效
问题描述
我对 JSP 文件编码有难以置信的问题。我们的许多 JSP 文件中只有一个破坏了 UTF-8 编码。我们使用波兰语字符,如 ł、ż 等。
我在 Eclipse 中设置了 UTF 编码:
首选项 -> 常规 -> 内容类型 -> 文本 -> JSP -> 默认编码 -> UTF-8
首选项 -> Web -> JSP 文件
首选项 -> 常规 -> 工作区
我的 JSP 文件如下所示:
<%@ page import="main.tables.*" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Szczegóły użytkownika</title>
<style>
<%@include file="../../../WebDevelopment/css/style.css"%>
<%@include file="../../../WebDevelopment/css/bootstrap.min.css"%>
</style>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
...
</body>
</html>
我还尝试在记事本中更改编码并将其设置在 servlet 中。我用了这条线:
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
有人只在一个 JSP 文件中遇到过类似的问题吗?
解决方案
经过长时间的故障排除后,我决定在我的机器上重新创建 servlet 和 JSP 文件。最初我的一位同事在他自己的电脑上创建了它。
所以我在我的 Eclipse 中创建了新的 servlet 和 JSP,并在所有地方都设置了正确的编码。之后我复制了 doPost 正文和 JSP html 正文。这奏效了……
我们需要在我们的团队中考虑这个问题。摆脱类似问题的关键可能是在这些地方设置 UTF-8 编码:
首选项 -> 常规 -> 内容类型 -> 文本 -> JSP -> 默认编码 -> UTF-8
首选项 -> Web -> JSP 文件
首选项 -> 常规 -> 工作区
推荐阅读
- java - 更新声音级别会冻结我的应用程序(我正在使用 handler.post)
- r - R编码由分隔符连接的分类变量
- audio - window.webkitAudioContext 在 Safari 上不起作用
- php - 获取随机日、月、年、星期几
- java - 处理这些 if 子句的更简洁的方法?
- php - 网站所有控制者的呼叫服务
- asp.net - 为什么在页面级别撤销授权后,CheckUrlAccessForPrincipal 仍然返回 true?
- rabbitmq - RabbitMQ 交换队列最大长度
- python - 一步过滤 pandas GroupBy 输出(方法链接)
- microservices - 微服务中的共享库