【问题标题】:CentOs - Tomcat - Angular2 - Encoding UTF-8CentOs - Tomcat - Angular2 - 编码 UTF-8
【发布时间】:2017-07-06 14:13:18
【问题描述】:

我有一个 SpringBoot Angular 应用程序部署在 CentOs 服务器中的 Tomcat 中。

CentO 语言环境:

LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=

在 Tomcat 的 catalina.sh 脚本中,我有以下配置:

CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding='UTF-8'"

在 Angular 应用的 index.html 中:

<meta charset="utf-8">

在父项目的pom.xml中:

<project.build.sourceEncoding>UTF-8</project.build.sourceEnc‌​oding>

所有文件都以 UTF-8 编码

虽然有些字符显示不好:

é -> é
à -> è
° -> °
...

但是,数据库中的字符显示良好(数据库以ANSI编码)

有人知道我的错误在哪里吗?

【问题讨论】:

  • Java Web 应用程序是否以 UTF-8 构建?
  • 是的,我在 pom.xml 中有以下行: UTF-8
  • 您的源代码文件是否以 UTF-8 格式保存?
  • 是的,所有文件都以UTF-8保存
  • Java 业务逻辑可能会导致编码不匹配。可以把源代码发到 GitHub 并分享链接吗?

标签: angular tomcat encoding utf-8 centos


【解决方案1】:

问题已解决,将 js 和 html mime 类型的字符集添加到 tomcat 的 web.xml 中:

<mime-mapping>
    <extension>html</extension>
    <mime-type>text/html;charset=UTF-8</mime-type>
</mime-mapping>

<mime-mapping>
    <extension>js</extension>  
    <mime-type>text/javascript;charset=utf-8</mime-type>  
</mime-mapping>  

【讨论】:

    猜你喜欢
    • 2011-09-04
    • 2012-06-11
    • 2012-03-10
    • 2018-04-21
    • 2011-10-30
    • 2012-11-07
    • 2016-01-08
    • 2015-03-04
    • 2016-07-05
    相关资源
    最近更新 更多