一尘不染

Eclipse JSP:不正确的默认文本文件编码

jsp

我有以下问题。我创建了一个新的“动态Web项目”,并将一些现有的jsp文件导入了其中。

如果我右键单击导入的jsp文件之一,然后单击“属性”>“资源”,则在“文本文件编码”部分下,值为“默认值(由内容类型确定:ISO-8859-1)”。但是我在导入之前已经运行过iconv,以确保它们在utf-8中:

$ iconv -f "ISO-8859-1" -t "UTF-8" from.jsp > to.jsp

所有的jsp文件都具有以下元集:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

有人知道如何更改此设置吗?Tomcat将它们正确地作为utf-8(http内容类型标头)提供,所以我真的不知道这会产生什么影响…


阅读 267

收藏
2020-06-08

共1个答案

一尘不染

这不是一个错误,这是一个功能

Eclipse不能像扫描shell上的file或iconv命令一样通过扫描文件来“确定”正确的编码。

解决方案: 将以下行添加到您的JSP:

<%@ page pageEncoding="UTF-8" %>

这是一个好主意,因为尽管您已经在HTML标头中设置了正确的内容类型,但许多Web容器都会强制传递ISO-8859-1编码的文件。

仅供参考:字符集和文件编码不匹配会导致

  • 到类似“ Schei。encoding”中的字符(UTF8(多字节)上下文中的Latin1字符)。
  • 如果您有类似“f¼r”的字样,则在单字节字符上下文中不建议使用折断的多字节字符(通常为UTF-8)(Latin1 / ISO-8859-1 || ISO-8859-15用于德语)
2020-06-08