使用html特殊字符的Blade模板系统中可能存在的错误

时间:2015-09-07 18:42:28

标签: templates laravel blade html-entities

我不一定确定这一点,但似乎在使用Laravel 5.1的刀片模板上使用变音符号,重音字符等时会发生奇怪的事情。

我正用一根字母敲打着墙上的一个字母,字母以ä字母结尾,无论我怎么做,我真的无法用html_entity_decode解码。

以下是我疯狂的刀片模板文件中的内容:

{{ html_entity_decode('just-another-string-ä') }}

现在,当我在浏览器窗口中渲染模板时,我显然得到了:

just-another-string-ä

但是在源代码中我有以下内容:

just-another-string-äauml;

在我的理解中,这不代表我在刀片模板中给出的字符串。

......几分钟过去......

过了一会儿,我把字符串改为:

just-another-string-ä-test

作为源代码结果,我得到了:

just-another-string-ä-test

这比我用第一个字符串得到的“几乎是双倍的”很容易解码。除了最后的字母/单词替换之外,我还注意到当我在行后的Blade模板中输入换行符时,事情按预期工作。

{{ html_entity_decode('just-another-string-ä') }}
{{-- erase this comment --}}

源代码中的所有内容都是有序的:

just-another-string-ä

我是否完全错过了这里的某些内容,或者这有点像臭虫?

1 个答案:

答案 0 :(得分:0)

好的,我发现了这个问题,虽然不是解决方案。

在调查之后我发现它不是刀片问题。它既不是PHP也不是Apache - 它是您的浏览器。

例如,只需创建一个包含以下内容的HTML文件:

this-is-a-string-ä

对我来说(至少在Chrome中,我还没有测试过其他浏览器),这会产生与您所看到的相同的问题。如果你没有尾随换行符,那么查看源代码就会中断,但如果你有一个,那就没问题了。

所以解决方案很简单,在文件末尾启用"空白换行符"在文本编辑器中设置。无论如何你应该真的打开它,例如差异在文件末尾有一个空白行更好地触摸(它们没有看到没有的区别),这意味着,通过扩展,版本控制像Git这样的系统可以更好地处理它们。

,我已经找到了这个功能并没有真正受到伤害。

我认为这几乎肯定是一个已知的问题,但我还没有看过Chrome问题跟踪器或任何东西。如果您确实希望深入了解它,请随意这样做。我有兴趣知道:)