树枝中的特殊字符问题
Special character issue in twig
我已经尝试按照自定义块的代码进行操作。当我从管理员添加内容时,它工作正常。但是,只针对特殊字符发布。
admin\view\template\extension\module\theme_module.树枝
<div class="tab-content">
{% for language in languages %}
<div id="tab8-language-{{ language.language_id }}" class="tab-pane">
<div class="form-group">
<div class="col-sm-10">
<textarea name="custom_block[{{ language.language_id }}][description]" data-toggle="summernote" data-lang="{{ summernote }}" class="form-control" id="input-description8{{ language.language_id }}">{{ custom_block[language.language_id].description ? custom_block[language.language_id].description }}</textarea>
</div>
</div>
</div>
{% endfor %}
</div>
admin\controller\extension\module\theme_module.php
if (isset($this->request->post['custom_block'])) {
$data['custom_block'] = $this->request->post['custom_block'];
} else {
$data['custom_block'] = $this->config->get('custom_block');
}
catalog\controller\common\header.php
$data['config_language_id'] = $this->config->get('config_language_id');
$data['custom_block'] = $this->config->get('custom_block');
catalog\view\theme\default\template\common\header.树枝
{% set lang = config_language_id %}
{% if custom_block[lang]['description'] %}
{{ custom_block[lang]['description'] | convert_encoding('UTF-8', 'HTML-ENTITIES') }}
{% endif %}
当我确实添加来自管理员的内容时:ľščťžýáíé
所以,输出:ľšÄťžýáÃé
正确的方法是在控制器文件中进行。
例如:
catalog\controller\product\category.php
创建变量:
$data['my_var'] = html_entity_decode($data['my_var'][$this->config->get('config_language_id')]['description'], ENT_QUOTES, 'UTF-8');
并在 catalog\view\theme\default\template\product\category.twig
中回显:
{{ my_var }}
输出:
ľščťžýáíé
我认为你应该这样做
{{custom_block.lang.description | convert_encoding('UTF-8', 'HTML-ENTITIES')}}
你也可以试试
@Digicart 建议
我已经尝试按照自定义块的代码进行操作。当我从管理员添加内容时,它工作正常。但是,只针对特殊字符发布。
admin\view\template\extension\module\theme_module.树枝
<div class="tab-content">
{% for language in languages %}
<div id="tab8-language-{{ language.language_id }}" class="tab-pane">
<div class="form-group">
<div class="col-sm-10">
<textarea name="custom_block[{{ language.language_id }}][description]" data-toggle="summernote" data-lang="{{ summernote }}" class="form-control" id="input-description8{{ language.language_id }}">{{ custom_block[language.language_id].description ? custom_block[language.language_id].description }}</textarea>
</div>
</div>
</div>
{% endfor %}
</div>
admin\controller\extension\module\theme_module.php
if (isset($this->request->post['custom_block'])) {
$data['custom_block'] = $this->request->post['custom_block'];
} else {
$data['custom_block'] = $this->config->get('custom_block');
}
catalog\controller\common\header.php
$data['config_language_id'] = $this->config->get('config_language_id');
$data['custom_block'] = $this->config->get('custom_block');
catalog\view\theme\default\template\common\header.树枝
{% set lang = config_language_id %}
{% if custom_block[lang]['description'] %}
{{ custom_block[lang]['description'] | convert_encoding('UTF-8', 'HTML-ENTITIES') }}
{% endif %}
当我确实添加来自管理员的内容时:ľščťžýáíé
所以,输出:ľšÄťžýáÃé
正确的方法是在控制器文件中进行。 例如:
catalog\controller\product\category.php
创建变量:
$data['my_var'] = html_entity_decode($data['my_var'][$this->config->get('config_language_id')]['description'], ENT_QUOTES, 'UTF-8');
并在 catalog\view\theme\default\template\product\category.twig
中回显:
{{ my_var }}
输出:
ľščťžýáíé
我认为你应该这样做
{{custom_block.lang.description | convert_encoding('UTF-8', 'HTML-ENTITIES')}}
你也可以试试 @Digicart 建议