提问人:beingicy 提问时间:3/4/2023 最后编辑:skomisabeingicy 更新时间:3/5/2023 访问量:332
tomcat 服务器语言编码问题 (UTF-8)
tomcat server language encoding problem (UTF-8)
问:
我正在使用 Intellij Ultimate。当我在浏览器中运行html文件时,它适用于编码。但是,当我以 localhost url(tomcat 服务器)身份运行时,字符会破裂。编码破解的图像这是我的IF.html文件
<!DOCTYPE html>
<html lang="en">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<meta charset="utf-8">
<title>title</title>
</head>
<h1>If-else Example</h1>
<form method="post" action="if.jsp">
<body>
이름 : <label>
<input name="name">
</label>
<p></p>
좋아하는 색깔 : <label>
<select name="color">
<option value="blue" selected>파랑</option>
<option value="red">빨강</option>
<option value="orange">오렌지</option>
<option value="etc">기타</option>
</select>
</label>
<p></p>
<input type="submit" value="보내기">
</body>
</form>
</html>
我通过 web.xml 映射了这个 if.html 文件。
<servlet>
<servlet-name>if</servlet-name>
<jsp-file>/if.html</jsp-file>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>if</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
其他 Jsp 文件或映射的 java 文件以 UTF-8 编码良好,但只有 html 文件破解。我想将html文件正确编码为UTF-8。提前感谢您的帮助。
我尝试过这种方式,但没有用。
- 将 Intellij 项目编码、全局编码、属性文件的默认编码设置为 UTF-8
- 在 Tomcat Configuration 中添加了 java 选项 -Dfile.encoding=UTF-8
- 添加了 Intellij 自定义 VM 选项 -Dfile.encoding=UTF-8
- 在 tomcat 容器的 server.xml 中添加了 URLEncoding=“UTF-8”
答:
0赞
meedhansh gupta
3/4/2023
#1
由于您遇到 UTF-8 问题,您可以尝试 UTF-8 + BOM 编码,因为它在任何情况下都对我有用,因为我的 tomcat 服务器曾经在输入阿拉伯语时显示一个巨大的错误。因此,现在您应该能够在两台服务器上运行它们。这应该可以解决问题。
评论
0赞
meedhansh gupta
3/5/2023
@JosefZ 嗨,但我认为每当我遇到此类问题时,我总是使用 UTF8+BOM,因为它通常可以解决我的问题,而不是 ANSI 或 Unicode。这就是我说的原因。
0赞
skomisa
3/5/2023
如果在问题的评论中作为建议发布,您的答案会很好,但仅仅因为包含 BOM 可以解决您的问题,并不意味着它会解决 OP 的问题。事实上,它可能会引起问题。为了支持 @JosefZ: 的评论:来自 JetBrains 文档:“默认情况下,IntelliJ IDEA 在没有 BOM 的情况下创建 UTF-8 文件,因为某些软件与 BOM 不兼容,并且在解释脚本时可能会出现问题。
0赞
beingicy
3/5/2023
谢谢大家。我只是做新项目,它就可以了。我认为我的项目中存在一些形式问题。我第一次创建一个新项目时,我是用 javax 制作的。但是,由于我使用的是 tomcat 11,因此我将一些设置更改为 jakarta。我想知道那里,有问题。顺便说一句,如果有其他编码问题,我会尝试 unicode 和字节顺序标记的方式。非常感谢您的帮助。
0赞
meedhansh gupta
3/12/2023
不客气!
下一个:消毒单词后撇号变化
评论
'보내기'.encode('utf-8').decode('cp1252')
보내기
<input type="submit" value="보내기">