gpt4 book ai didi

java - 从 Spring boot 2.0.5/java 8 迁移后,Spring boot 2.1/java 11 应用程序无法识别重音字符

转载 作者:行者123 更新时间:2023-11-30 01:59:47 24 4
gpt4 key购买 nike

我有一个 Spring boot Web 应用程序,曾经在 java 8 和 Spring boot 2.0.5 上运行得很好。现在,当我访问任何页面并尝试输入包含 É 字符的数据时,该字符将保存为 ?在数据库中并且显然是这样检索的。除了添加不再内置于 JRE 中的 javax.json.bind-api 依赖项之外,我还更改了 0 处代码。是否需要更改某种全局字符编码属性才能正确识别非标准字符?

编辑

这是我的 JSP 页面的相关部分:

<form:form method="POST" modelAttribute="medClass" class="form-style-7">
<form:input path="name" id="name"/>
</form:form>

Controller 代码:

@RequestMapping(value = {"/newMedClass"}, method = RequestMethod.POST)
public String saveMedClass(@Valid MedClass medClass, BindingResult result, ModelMap model)
{
boolean hasCustomErrors = validate(result, medClass);
if ((hasCustomErrors) || (result.hasErrors()))
{
setPermissions(model);

return "medClassDataAccess";
}
medClassService.save(medClass);
session.setAttribute("successMessage", "Successfully added med class \"" + medClass.getName() + "\"!");
return "redirect:/medClasses/list";
}

当输入 ÉÉÉÉ 作为该实体的名称(是的,它是一个字符串)时,该实体会以 ???? 进入 Controller 。已经存在,因此按原样保存。

编辑

我在每个 JSP 的顶部都有这一行:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>

这需要改变吗?

谢谢

最佳答案

将 JSP 的字符集更改为 UTF-8 可以解决此问题。以前这是如何完美运作的完全是个谜......

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

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

关于java - 从 Spring boot 2.0.5/java 8 迁移后,Spring boot 2.1/java 11 应用程序无法识别重音字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53269708/

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