【发布时间】:2015-12-30 15:22:07
【问题描述】:
我正在尝试编辑示例 Joomla3 模块以显示带有重音符号和其他字符的字符。该模块的工作方式如下:进入表格,填写任何文本,然后单击“发送”按钮。 嵌入的文本出现在模块的底部。该模块正在工作,但是当您输入例如文本时:“řecký”仅出现:“eck”。您能否建议某人如何修改代码 显示带有重音符号和特殊字符的字符?
可能需要编辑文件 mod_hello_ajax_world.php:
<?php defined('_JEXEC') or die;
// Include the helper.
require_once __DIR__ . '/helper.php';
// Instantiate global document object
$doc = JFactory::getDocument();
$js = <<<JS
(function ($) {
$(document).on('click', 'input[type=submit]', function () {
var value = $('input[name=data]').val(),
request = {
'option' : 'com_ajax',
'module' : 'hello_ajax_world',
'data' : value,
'format' : 'raw'
};
$.ajax({
type : 'POST',
data : request,
success: function (response) {
$('.status').html(response);
}
});
return false;
});
})(jQuery)
JS;
$doc->addScriptDeclaration($js);
require JModuleHelper::getLayoutPath('mod_hello_ajax_world');
同样的问题(不显示重音字符或特殊字符)也出现在演示模块“Ajax-Session-Module”中。
谢谢。
【问题讨论】:
-
您必须看到编码错误的地方..到达控制器时还是仅在视图上?
-
miguelmpn,感谢您的回复。该文本包含重音字符,我从未在模块中的任何 PHP 变量或 /components/com_ajax/ajax.php 中找到。该模块只有四个文件:mod_hello_ajax_world.xml、mod_hello_ajax_world.php(上面的代码)、helper.php 和 tmpl/default.php 该模块与 com_ajax 组件通信,该组件是 Joomla 3.2 版的一部分。
-
在 Firebug 控制台中,在 POST 中发送的文本具有正确的编码。但是响应(Firebug 控制台) no 包含重音字符。
-
我只记得检查数据库字段编码(如果您正在使用),以及您模块上 PHP 文件的编码。您还可以检查 Joomla ajax.php 是否正在删除特殊字符..(我现在看不到)