2013-03-07 48 views
0

我对模板工具包中的下拉选项下为什么尖锐的重音未正确显示的问题感到困惑。如何在模板工具包中创建的下拉菜单中显示尖锐的重音字符

[% glossary.$language.all_terms %] 

在用户界面中显示为“Todos losTérminos”。但是,当我在下拉菜单中使用相同的名称时,它显示的字符不正确。我附上了截图。

The Dropdown showing the wrong data, where as same variable printed is correct

要做到这一点,我写这样的模板。

[% IF terms.size > 1 %] 
    <select onchange="this.form.submit();"> 
    [%- 
    IF terms.size > 1; 
     terms.unshift({ name => glossary.$language.all_terms, term_id => '0' }); 
     terms.unshift({ name => glossary.$language.all_current_terms, term_id => '' }); 
    END; 

INCLUDE html/options.tmpl 
options = terms, 
valuekey = 'term_id', 
choicekey = 'name', 
selected = form.term_id 
    -%] 
</select> 

html/options.tmpl是一个模板,它将在同一个下拉列表中添加额外的动态选项。术语数据结构是从PERL模块发送的。 那是我做错了什么?

+0

HTML中实际输出的是什么?我的猜测是,有些东西是自动编码的HTML,所以'é'正在转换为'& 233;'。 – 2013-03-07 11:05:03

+0

@DaveCross我添加了新的截图。当我打印[%glossary。$ language.all_terms%]它工作正常。但是,当我把如上所示的下拉代码部分放在相同的位置时,eacute显示不正确。 – 2013-03-08 06:01:48

回答

1

我同意戴夫,模板工具包网站的流行语法是使用html实体的单词形式。也许在html/options.tmpl中用&eacute;代替&#233;

除此之外,模板工具包描述了过滤器的使用。由于某种原因,选项可能会被过滤或不被选择。也许这可以帮助你https://metacpan.org/pod/distribution/Template-Toolkit/lib/Template/Manual/Filters.pod#html_entity

+0

感谢它的工作。我在html/options.tmpl模板文件中有一个'escape_html'。删除它,恢复了确切的尖锐重音字符 – 2013-03-08 06:47:41

相关问题