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

roi*_*uez 9 eclipse jsp

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

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

$ iconv -f "ISO-8859-1" -t "UTF-8" from.jsp > to.jsp
Run Code Online (Sandbox Code Playgroud)

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

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Run Code Online (Sandbox Code Playgroud)

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

chi*_*.de 13

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

Eclipse没有通过将文件扫描到shell上的文件或iconv命令来"确定"正确的编码.

解决方案:在JSP中添加以下行:

<%@ page pageEncoding="UTF-8" %>
Run Code Online (Sandbox Code Playgroud)

这是一个好主意,因为许多Web容器将强制提供ISO-8859-1编码文件,但您已在HTML标头中设置了正确的内容类型.

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

  • 像"Schei 编码"中的字符(UTF8(multiByte)上下文中的Latin1字符).
  • 如果你有类似"für"的东西,它会在单字符字符上下文中为一个破碎的多字节字符(通常为UTF-8)(德语的Latin1/ISO-8859-1 || ISO-8859-15)


小智 10

Windows> Preferences> General> Content Types> Text> JSP> Default Encoding> UTF-8