Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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
Php Zend Navigation在XMLTPX文件特殊字符中使用Zend Translate西班牙语的编码问题_Php_Zend Framework_Special Characters_Zend Navigation_Zend Translate - Fatal编程技术网

Php Zend Navigation在XMLTPX文件特殊字符中使用Zend Translate西班牙语的编码问题

Php Zend Navigation在XMLTPX文件特殊字符中使用Zend Translate西班牙语的编码问题,php,zend-framework,special-characters,zend-navigation,zend-translate,Php,Zend Framework,Special Characters,Zend Navigation,Zend Translate,我一直在尝试使用Zend Translate向用户显示已翻译的菜单项 在我将特殊字符引入翻译文件之前,它工作正常 我在引导程序中实例化Zend_Translate对象,并将其作为转换器传递到Zend_导航: $translate = new Zend_Translate( array('adapter' => 'tmx', 'content' => APPLICATION_PATH .'/languages/translation.tmx',

我一直在尝试使用Zend Translate向用户显示已翻译的菜单项

在我将特殊字符引入翻译文件之前,它工作正常

我在引导程序中实例化Zend_Translate对象,并将其作为转换器传递到Zend_导航:

$translate = new Zend_Translate(
    array('adapter' => 'tmx',
          'content' => APPLICATION_PATH .'/languages/translation.tmx',
          'locale' => 'es'
          )
);

$navigation->setUseTranslator($translate);
我使用了几种不同的适配器(阵列、tmx),以查看这是否有不同。最后,我得到了一个使用ISO-8859-1编码的TMX文件(否则在引入菜单项“Administrar Applicationón”时会抛出XML解析错误)

它将显示所有菜单项,除了使用特殊字符的菜单项。它将只是空白

现在-如果我在zend framework类“菜单”中使用PHP的UTF8编码,我不想这样做:

Zend_View_Helper_Navigation_菜单中的第215行:

if ($this->getUseTranslator() && $t = $this->getTranslator()) {
    if (is_string($label) && !empty($label)) {
        $label = utf8_encode($t->translate($label));
    }
    if (is_string($title) && !empty($title)) {
        $title = utf8_encode($t->translate($title));
    }
}
菜单项显示正确,一切都很愉快

问题是,我不想修改库

在zend translate或zend navigation中是否有我找不到的某种编码设置

请帮忙


Zend Library版本:1.11

我遇到了一个相关问题:Zend表单没有显示像ñ这样的拉丁字符。请尝试将以下内容添加到bootstrap.php中的_initView函数中:

$view->setEncoding('iso-8859-1');  
if ($this->getUseTranslator() && $t = $this->getTranslator()) {
    if (is_string($label) && !empty($label)) {
        $label = utf8_encode($t->translate($label));
    }
    if (is_string($title) && !empty($title)) {
        $title = utf8_encode($t->translate($title));
    }
}
$view->setEncoding('iso-8859-1');