gpt4 book ai didi

java - 从 Web 解析日语文本不会给出正确的字符

转载 作者:行者123 更新时间:2023-11-28 03:27:55 25 4
gpt4 key购买 nike

我有一个在 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);

然后下一个 == '&' 而不是 'ベ'

但在接下来的 Swing 中 == 'ベ'

我要'ベ',不是'&'

最佳答案

好吧,终于回到这个问题上了。有几个问题,这是详细信息,希望这会为其他人节省我解决这个问题的乐趣。

第 1 步 - 确保您的 html/jsp 页面设置为 UTF-8

<head>
<meta charset="UTF-8">
</head>

第 2 步 - 将以下内容添加到您的 jsp 页面的顶部

<%@ page contentType="text/html; charset=UTF-8" %>

第 3 步 - 在您的 Servlet doPost 或 doGet 中,确保您在代码的第一行执行以下操作(或使用过滤器)

request.setCharacterEncoding("utf-8");

对于 POST,这将使事情正常工作,但 GET 仍然无法工作。

第 4 步 - 在您的 Tomcat server.config 中设置 URIEncoding

<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="9443"
URIEncoding="UTF-8"/>

现在一切正常。我在从休息服务中读取数据时还有另一个问题。这是我修复它的方式,

Reader reader = new InputStreamReader(get.openStream(), "UTF-8");

如果您不使用字符集将流包装在阅读器中,它将无法工作。

希望这对其他人有帮助。

关于java - 从 Web 解析日语文本不会给出正确的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20003712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com