【问题标题】:UTF-8 encoding will work on all HTML pages but oneUTF-8 编码将适用于所有 HTML 页面,但一个
【发布时间】:2019-05-02 12:26:05
【问题描述】:

我正在用法语设置一个 Web 应用程序,所以我用 UTF-8 对其进行编码,因为它有很多口音。但是,我所有的 HTML 页面都被编码,但只有一个。正如标签所示,我也在使用 PHP、Symfony 和 twig。

这是我的名为 base.html.twig 的基本 twig 文件:

<!DOCTYPE html>
<html lang="fr">
    <head>
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <meta charset="UTF-8"/>

        <title>
          {% block title %}
            {{titrePage}}
          {% endblock %}
        </title>

        {% block stylesheets %}
          <link href="/css/base.css" type="text/css" rel="stylesheet"/>
          <link rel="stylesheet" href="https://bootswatch.com/4/litera/bootstrap.css" crossorigin="anonymous">
          <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
        {% endblock %}
    </head>

    <body id="body">
        {% block body %}

          {% block javascripts %}
            <!--<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>-->
            <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
            <script src ="public/js/CreationJS.js"></script>
          {% endblock %}

      {% endblock %}
    </body>
</html>

(旁注,CreationJS.js 文件仍然是空的)

然后,例如我的 index.html.twig 文件的开头:

{% extends 'base.html.twig' %}

{% block title %}Ajout de métier{% endblock %}

{% block body %}
<div class ="row" id="main">
  <div class = "col-xl-2 col-lg-2 col-md-2 col-sm-2 col-xs-2 colonnesLaterales">
    <img src="..\..\public\images\arep-frescc.png" width="300" height="82" alt="Logo"/>
  </div>
  <div class = "col-xl-8 col-lg-8 col-md-8 col-sm-8 col-xs-8 colonnesCentrales">
    <div class="titre">Création d'un métier</div>
    {{ form_start(metierForm) }}

当我在浏览器 (Firefox) 中打开它时,它以 UTF-8 编码

最后,害群之马开始创作Questions.html.twig:

{% extends 'base.html.twig' %}

{% block title %}Création de question{% endblock %}

{% block body %}
<div class ="row" id="main">
  <div class = "col-xl-2 col-lg-2 col-md-2 col-sm-2 col-xs-2 colonnesLaterales">
    <img src="..\..\public\images\arep-frescc.png" width="300" height="82" alt="Logo"/>
  </div>
  <div class = "col-xl-8 col-lg-8 col-md-8 col-sm-8 col-xs-8 colonnesCentrales">
    <div class="titre">Création d'une question</div>
    {{ form_start(questionForm) }}

此文件未以 UTF-8 编码。

我完全清楚它们大致相同。我检查了它们各自的控制器,它们都呈现了正确的文件。

我检查了其他页面,它们也都以 UTF-8 编码,所以我不明白为什么 creationQuestions.html.twig 没有。

编辑:我忘了补充非编码字符变成'�'

【问题讨论】:

  • 你使用哪种编码环境?
  • 我正在使用 VisualStudio 2017
  • 确保您的所有体检文件也存储为UTF-8
  • 您尝试过什么调试问题?当您从“害群之马文件”中删除某些部分时,这一切会更好吗?
  • 那……那行得通!非常感谢!我永远不会猜到!

标签: php html symfony utf-8 twig


【解决方案1】:

你可以尝试使用Twig Escape

在单个字符串上,甚至在你的块上

{{ "your téxt"|e }}

【讨论】:

    【解决方案2】:

    感谢 DarkBee 给我答案:我的 creationQuestions.html.twig 文件没有以 UTF-8 物理编码。我转换了它,它工作了。

    就这么简单

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      • 2012-12-08
      • 2011-09-24
      • 1970-01-01
      • 1970-01-01
      • 2012-09-22
      相关资源
      最近更新 更多