【问题标题】:Spring boot 2.1 / java 11 app not recognizing accentuated characters after migrating from Spring boot 2.0.5 / java 8从 Spring boot 2.0.5 / java 8 迁移后,Spring boot 2.1 / java 11 应用程序无法识别重音字符
【发布时间】:2019-04-15 14:51:59
【问题描述】:

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

这需要改变吗?

谢谢

【问题讨论】:

  • 该字符是字符串的一部分还是属性文件的一部分?只是根据might be because of the UTF-8 default encoding now.的受限信息进行推测
  • 问题在于用户输入的实际数据,这些数据使用 Hibernate 作为实体保存到 MSSQL 数据库中。
  • 您的应用程序如何读取它?作为字符串?
  • 请查看我的编辑以获取说明和代码

标签: java spring-boot character-encoding non-ascii-characters java-11


【解决方案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">

【讨论】:

  • 感谢分享,肯定对以后的读者有用:)
  • 希望如此!这很奇怪,就像我说的一切都与 Spring Boot 2.0.5 和 java 8 完美配合,而这些行在我所有 60 多个 JSP 页面中都包含 ISO-8859-1。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 1970-01-01
  • 2019-09-20
  • 2021-03-03
  • 2019-05-05
相关资源
最近更新 更多