【发布时间】:2013-12-23 20:22:41
【问题描述】:
我在将文件上传和解析为 UTF-8 字符串时遇到问题。我使用以下代码:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Part filePart = request.getPart("file");
InputStream filecontent = filePart.getInputStream();
// ...
}
我的网页是这样的:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<form action="UploadServlet" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" />
</form>
</body>
</html>
我发现了一个很棒的post 关于 java webapps 中的 UTF-8 编码,但不幸的是它对我不起作用。我在 NetBeans 调试器中的字符串中仍然有随机符号,当我在网页上显示它们时,尽管它们中的大多数都能正确显示,但一些西里尔字母(я、с、Н、А)被替换为“�?”
【问题讨论】:
-
问题出在使用该文件内容流的代码中,您没有向我们展示。
-
@bmargulies 我没有故意展示它,因为我是从桌面应用程序移植它的,它在那里完美运行。
-
您可能有不同的默认编码。
标签: java jakarta-ee servlets encoding utf-8