Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache HTML页面<;标题>;使用SSI时不解释为UTF-8_Apache_Unicode_Character Encoding_Echo_Ssi - Fatal编程技术网

Apache HTML页面<;标题>;使用SSI时不解释为UTF-8

Apache HTML页面<;标题>;使用SSI时不解释为UTF-8,apache,unicode,character-encoding,echo,ssi,Apache,Unicode,Character Encoding,Echo,Ssi,为了使我的网站看起来和感觉一致,我大量使用SSI。我的所有页面都有相同的页眉(标题除外)和页脚。这些行为类似于模板,包含在SSI指令中。变量字段内容通过SSI#set variables提供 这是我在没有使用HTML生成器的情况下找到的最接近于“函数”的等价物 标准页面结构如下所示: <!--#set var="PageTitle" value="Référence" --> <!--#include virtual="/header.shtml" --> <sec

为了使我的网站看起来和感觉一致,我大量使用SSI。我的所有页面都有相同的页眉(标题除外)和页脚。这些行为类似于模板,包含在SSI指令中。变量字段内容通过SSI#set variables提供

这是我在没有使用HTML生成器的情况下找到的最接近于“函数”的等价物

标准页面结构如下所示:

<!--#set var="PageTitle" value="Référence" -->
<!--#include virtual="/header.shtml" -->
<section>
    Specific page content
</section>
<!--#include virtual="/footer.shtml" -->
有没有办法将Apache SSI#echo处理置于“透明”模式下?

Apache手册上说,
encoding=
默认为
entity
(我得到的结果)。还可以将其设置为
URL
,以保护URL免受恶意使用(即%escape)。但是,没有
none
设置

当然,作为一种解决方法,我可以在字符串中直接使用字符实体引用,但这不是用户友好的:键入一个可以从键盘访问的字符要舒服得多,并且将目标字符放在屏幕上可以简化校对

编辑: 解决了

解决了,但我不知道它是否“标准”

我尝试在令人不快的
#echo
语句中添加
encoding=“none”
,一切都很顺利


现在,我必须检查这在不同的Apache版本中是否可用。

我添加这个答案,因为上面的答案并不能完全解决我的问题:

确保echo语句使用encoding=“none”--并确保将其设置在var之前而不是之后

出于某种原因,这是可行的:

但这并不是:

缺少垂直条/管道


我还没有读完整页,所以不确定这是否是问题的真正原因,但如果您正在使用它,则需要纠正

如何检查浏览器接收到的HTML?好的老“查看源代码”功能显示实际文本,但任何更高级的功能(尤其是显示DOM树的开发工具)都不会显示。浏览器怎么知道你的文本是UTF-8?你没有提到任何关于HTTP头的事情,我没有提到所有的簿记工作;在站点的“手册”和SSI版本中,一切都是一样的(在页面文本之前显式发送“Content-Type:text/html;charset=utf-8”的HTTP头)。Unicode UTF-8字节序列->实体引用在回送处理期间发生(以保护我免受意外XS攻击)。我想暂时取消此转换。请使用“回答您自己的问题”按钮提供解决方案。否则,答案将无法投票或接受,问题将显示为未回答。我知道,但我的“声誉”不允许我回答自己的问题。我考虑添加新的评论,但决定编辑我的问题。也许你可以复制我的编辑作为解答?您好。您说得对,每个代码段中都缺少感叹号。我很抱歉这个打字错误。这不是问题的原因:我没有粘贴代码,而是全部重新键入,忘记了惊叹号。我将编辑问题。是的,我注意到编码选项必须首先出现。感谢您明确说明限制条件和您的答案。
<title><!--#echo var="PageTitle" --></title>
R&#195;&#169;f&#195;&#169;rence