当前位置: 首页 > 知识库问答 >
问题:

Spring MVC和Thymeleaf波兰符号编码

陈项禹
2023-03-14

首先,我知道有很多这样的话题,但是我在stackoverflow中寻找解决方案,但是我没有找到解决方案。我的问题是Spring MVC中的字符集编码。就我而言,我指的是像ę,ó,ż这样的波兰字母。

我尝试了一切,从CharacterEncodingFilter开始,在maven-pom中设置UTF-8编码。xml,在ThymelafViewResolver和TemplateResolver中设置UTF-8编码和内容类型。

我没办法让它和波兰标志一起工作。重要的是,我的html页面包含波兰语符号,但是当我用post方法发送表单数据时,它会将utf-8符号转换为ISO-8859-1。

所以当我发送这样的数据时:Żyrardów

我从控制器中请求的数据如下:Å»yrardów

除了在我的控制器中的每个请求上转换符号之外,还有什么解决方案吗?

new String(ppForm.getCity().getBytes("ISO-8859-1"), "utf-8")

提前感谢,希望有人能提供解决方案。

@UP我也在tomcat server.xml文件中设置了URIEncoding,但是没用。

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

   <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />

共有1个答案

邢俊悟
2023-03-14

尝试如下:

(web.xml

<!-- encoding filter -->
<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>
</filter>

<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

(百里香叶设置)

<!-- thymeleaf settings -->
<beans:bean id="templateResolver"
    class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
    <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".html" />
    <beans:property name="templateMode" value="HTML5" />
    <beans:property name="cacheable" value="false"></beans:property>
    <beans:property name="characterEncoding" value="UTF-8"></beans:property>
    <beans:property name="order">
        <beans:value>1</beans:value>
    </beans:property>
</beans:bean>

<beans:bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
    <beans:property name="templateResolver" ref="templateResolver" />
    <beans:property name="additionalDialects">
        <beans:set>
            <beans:bean
                class="org.thymeleaf.extras.springsecurity4.dialect.SpringSecurityDialect"></beans:bean>
        </beans:set>
    </beans:property>
</beans:bean>

<beans:bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
    <beans:property name="templateEngine" ref="templateEngine" />
    <beans:property name="characterEncoding" value="UTF-8"></beans:property>
</beans:bean>

不起作用。你添加你的代码并评论我。

 类似资料:
  • 我的网站上的谷歌字体有问题。正如您在屏幕截图中看到的那样,一个标志有另一种样式(波兰标志)。似乎问题仅在Internet Explorer上显示。你知道如何解决这个问题吗? 像那样展示这个 当然,我使用带有“subset=latin-ext”的字体:

  • 数学表达式通常用内插符号表示。出于评估目的,我们可以将其更改为后缀(反向抛光)表示法(使用像分流场这样的算法),然后使用堆栈评估后缀表示法。 我发现计算器使用这种技术,但今天的现代编译器是否使用这种技术来计算算术表达式?它是否足够有效或正在使用其他技术(或算法)?

  • 我对和的用途有点困惑。 正如我从文档中理解的,拦截器在请求之间运行。另一方面,Filter在呈现视图之前运行,但在Controller呈现响应之后运行。 那么,拦截器中的和过滤器中的之间的区别在哪里呢?

  • 问题内容: Python中的tilde运算符有什么用? 我能想到的一件事是在字符串或列表的两面都做一些事情,例如检查字符串是否为回文: 还有其他好的用法吗? 问题答案: 它是从C借来的一元运算符(采用单个参数),其中所有数据类型只是解释字节的不同方式。这是“取反”或“补码”操作,其中输入数据的所有位都取反。 在Python中,对于整数,该整数的二进制补码表示形式的位被颠倒(对于每个单独的位而言),

  • SpringMVC控制器中@PathVariable有问题。每当我传递包含plus('+')的字符串时,plus就会被空格替换。对参数进行编码没有帮助。 例如,如果我请求url myapp/resend-validation/my+mail@gmail.com,我在变量中得到“mymail@gmail.com”。在请求myapp/resend-validation/my%2bmail@gmail.

  • 注意: Adobe Muse 不再添加新增功能,并将于 2020 年 3 月 26 日停止支持。有关详细信息和帮助,请参阅 Adobe Muse 服务结束页面。 在 Adobe Muse 中,可以将一组段落在文本框架内排列为项目符号列表或编号列表。通常,列表是相关项目的集合,比如团队的队员、任务的步骤等等。列表可以包含另一个列表,此类列表成为嵌套或多级列表。 可以使用“项目符号”面板创建有层次的项