我有一个在Tomcat中运行的servlet,它接受表单数据输入。
当我输入日文字符时,它们显示为字符串,
ベースにチェ
这是正确的,但是当我尝试使用charAt解析字符串时我得到了
ベースにチェ
如果我在Java客户端(swing)中输入相同的输入,则chatAt返回
ベースにチェ
所以,某些地方出了问题,但我不太了解utf-8或unicode,所以我不知道如何修复它?
html页面基本上是
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<form action="ChatServlet" method="post">
<input type="text" name="input">
<input type="submit" name="Submit" value="Submit">
在我使用的servlet中,
String input = (String)request.getParameter("input");
char next = input.charAt(0);
和下一个=='&amp;'不是'ベ'
但是下一步==''''
我想'ベ',而不是'&amp;'
答案 0 :(得分:0)
好的,终于回到了这个并弄清楚了。有几个问题, 这是详细信息,希望这将为其他人节省我想到的乐趣。
<head>
<meta charset="UTF-8">
</head>
<%@ page contentType="text/html; charset=UTF-8" %>
request.setCharacterEncoding("utf-8");
对于POST来说,这会让事情变得有效,但是GET仍然无法正常工作。
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="9443"
URIEncoding="UTF-8"/>
现在一切都应该有效。 从休息服务中读取数据时我还有另一个问题。 这是我修复它的方式,
Reader reader = new InputStreamReader(get.openStream(), "UTF-8");
如果你没有将流包装在带有charset的阅读器中,它将无法工作。
希望这有助于其他人。