Tomcat Servlet 文件上传和 UTF-8
我正在使用 commons FileUpload 来获取客户端标头。我正在尝试使用标题字符串来写入 txt 内容,例如:
字符串A;字符串B; “西里尔文字”
服务器本地化是 ru_RU.utf-8 客户端是 cp1251...结果是我总是在我的客户端(桌面应用程序)上出现
字符串A;字符串B; ????
而不是我的服务器 txt 文件行中的西里尔字符。如果我用 IE 8 打开 txt 并观察编码,则只能使用 utf-8 编码读取西里尔内容:( 所以我的问题是我应该做什么才能让我的 servlet 写入 ru_RU.utf-8 可接受的字符串。我正在测试它在 Windows 上,所以我需要确定它
请帮助我理解
任何有用的评论表示赞赏
I am using commons FileUpload to get client headers. I am trying to use the header Strings to write txt content like:
StringA; StringB; "ciryllic word"
The server localization is ru_RU.utf-8 the client is cp1251... The result is I always get on my client (desktop app)
StringA; StringB; ?????
instead of cyrillic characters in my server txt files lines. If I open txt with my IE 8 and watch the encoding the cyrillic content can be readable with utf-8 encoding only :( So my question is what should me do to make my servlet write ru_RU.utf-8 acceptable strings. I am testing it on windows so I need to know it for sure
Please help me to understand
Any useful comment is appreciated
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ServletOutputStream out =response.getOutputStream();
out.write((YOUrfileasstring).getBytes("UTF-8"));
ServletOutputStream out =response.getOutputStream();
out.write((YOUrfileasstring).getBytes("UTF-8"));
我可能误解了这个问题,但要回答这一部分 -
您应该使用 HttpServletResponse 类提供的两种方法之一。它们是:
setContentType()(例如
)或
setCharacterEncoding()(例如)
这些方法还有其他示例以及有关何时在各处使用它们的信息。
I might be misunderstanding the question, but to answer this part -
You should use either of two methods provided by the HttpServletResponse class. Those are:
setContentType(), e.g.
or,
setCharacterEncoding(), e.g.
There are other examples for those methods and information on when to use them all over the place.