浏览器中特殊字符的显示不正确 - Angular i18n

时间:2017-09-20 07:46:49

标签: angular encoding utf-8 internationalization angular-i18n

我正在使用Angular4 i18n支持我的项目将英语翻译成西班牙语。我生成的messages.xlf文件是UTF-8编码的。

<?xml version="1.0" encoding="UTF-8" ?>

我还有2个其他文件,翻译文本为messages.en.xlf和messages.es.xlf。这两个文件也有UTF-8编码。

Angular project index.html也有UTF-8编码。

  <meta charset="UTF-8">
  <meta http-equiv="Content-type" content="text/html; charset=UTF-8">

messages.es.xlf中的翻译文本如下所示。

<trans-unit id="dashGeneric" datatype="html">
    <source>Generic</source>
    <target state="translated">Genérico</target>
    <context-group purpose="location">
      <context context-type="sourcefile">product.component.d.ts</context>
      <context context-type="linenumber">66</context>
    </context-group>
    <note priority="1" from="description">product- generic</note>
  </trans-unit>

翻译后的文字在浏览器中显示为Genéri​​co 。但它应该像在messages.es文件中一样Genérico

我在notepad ++中打开了消息文件,并确保它们以UTF-8编码。但仍然没有运气。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我已经通过在tomcat服务器web.xml文件中将mime类型设置为charset = UTF-8来解决这个问题。

Link to the original answer

答案 1 :(得分:0)

&#13;
&#13;
Add charset="UTF-8" to script tags which you are using to include the generated js files.

<script type="text/javascript" src=" source path " charset="UTF-8">

eg:
<script type="text/javascript" src="inline.bundle.js" charset="UTF-8"></script>
<script type="text/javascript" src="polyfills.bundle.js" charset="UTF-8"></script>
Note : Like the above example, add charset="UTF-8" for all the js files which you want to include
&#13;
&#13;
&#13;