Spring MVC UTF-8字符编码

3
目前我正在尝试使用Spring MVC开发网站。但是在我的视图中存在一个问题,我们可以将其称为字符问题。我想在我的JSP视图页面中显示UTF-8字符。
在视图页面中,我在JSP文件中分离了标题、页脚和正文,并将我的标题和页脚实现到正文中(这可能是需要提及的重要事情)。
以下是我的标题介绍:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<!--[if lt IE 7]> <html dir="ltr" lang="en-US" class="no-js lt-ie9 lt-ie8 lt-ie7" > <![endif]-->
<!--[if IE 7]>    <html dir="ltr" lang="en-US" class="no-js ie7 lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>    <html dir="ltr" lang="en-US" class="no-js ie8 lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!-->
<html dir="ltr" lang="en-US" class="no-js">
<!--<![endif]-->

<head>
    <!-- Basic Page Needs
  ================================================== -->
    <meta charset="latin5">
    <title>orcunyilmaz.com</title>
    <meta name="description" content="">
    <meta name="author" content="">
    <!-- Mobile Specific Metas
  ================================================== -->
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
    <script src="<c:url value="/resources/js/galleria-1.4.2.min.js"/> "></script>
    <style>
        .galleria {
            width: 600px;
            height: 300px;
            background: #000;
        }
    </style>
    <!-- CSS
  ================================================== -->
    <link href='http://fonts.googleapis.com/css?family=Oswald' rel='stylesheet' type='text/css'>
    <link href="<c:url value="/resources/css/foundation.css"/>" rel="stylesheet">
    <link href="<c:url value="/resources/css/foundation-icons.css"/>" rel="stylesheet">
    <link href="<c:url value="/resources/css/flexslider.css"/>" rel="stylesheet">
    <link href="<c:url value="/resources/css/style.css"/>" rel="stylesheet">
    <link href="<c:url value="/resources/css/mediaqueries.css"/>" rel="stylesheet">
    <link href="<c:url value="/resources/colors/default.css"/>" rel="stylesheet">...

以下是我的home.jsp介绍:

<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@include file="/WEB-INF/views/template/header.jsp" %>

<div id="page">
<div id="main">
    <div class="row search-bar">
        <div class="three columns"></div>
        <aside class="widget widget_search six columns">
            <form action="/" class="searchform" method="get" role="search">
                <input size="27" type="text" title="Ara.." class="s" name="s"> </form>
        </aside>
        <div class="three columns"></div>...

(如果需要整个代码,我可以在这里粘贴) 我在这篇文章中找到了答案:Spring MVC UTF-8编码 它说我需要在我的web.xml中实现一些过滤器,但也没有起作用。 这是我在web.xml中实现的过滤器:
<filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

以下是翻译的结果:

这是一个部分的屏幕截图:

总之,这是损坏字符的屏幕截图

我需要它显示为:İlan Tarihiİlan No。任何帮助将不胜感激,提前致谢。


还说要编辑Tomcat的server.xml文件。你也做了吗? - SachinSarawgi
4个回答

1
尝试在tomcat目录下的server.xml文件中,在标签中添加URIEncoding = "UTF-8"。另外,如果您使用Maven,可以尝试将此内容添加到pom.xml文件中。
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
... 
</properties>

1
每个JSP文件都需要这一行代码:

Every jsp-file needs this line:

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

也要检查您的IDE中的编码。


这与我的有什么不同?我的意思是,我在我的header.jsp文件中有这一行,并且我正在将该header.jsp文件实现到我所有其他的**.jsp**文件中。 - Prometheus
@Prometheus,你有pageEncoding参数吗? - dieter
啊,是的,我没有它。但是我现在也添加了 pageEncoding,但它没有起作用。@dit - Prometheus
1
@Prometheus 如果你拥有所有这些并且编码仍然不起作用,很可能你显示的(文本)实际上没有UTF-8编码。 - isah

1

0

我刚开始学习Spring Boot 3。 我使用Spring Boot创建了一个简单的Web应用程序Spring MVC,以支持JSP视图页面: 在pom.xml中添加以下代码片段:

<dependencies> 
        ... 
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <version>11.0.0-M4</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        ....
 </dependencies>  

并支持UTF-8编码:按照@alex的指示进行操作。你可以查看https://stackoverflow.com/search?q=user%3A1614378+Every+jsp-file+needs+this+line%3A

每个jsp文件都需要这一行:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接