繁体   English   中英

从Spring Boot 2.0.5 / Java 8迁移后,Spring Boot 2.1 / Java 11应用程序无法识别突出字符

[英]Spring boot 2.1 / java 11 app not recognizing accentuated characters after migrating from Spring boot 2.0.5 / java 8

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

控制器代码:

@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";
}

当输入ÉÉÉÉ作为该实体的名称时(是,它是一个字符串),该实体以????进入控制器。 已经保存,因此被保存。

编辑

我在每个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">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM