为什么我的扩展程序不会渲染变音符号?

时间:2012-05-25 21:10:10

标签: typo3 fluid extbase

我正在制作扩展程序以在网站上显示下载内容。您可以在on GitHub上查看完整的当前来源。

在我的controller中提供这段代码:

  $linkName = Tx_Downloads_Utility_Filename::construct( $download );
  $download->setLinkText( $linkName );

这是我想为下载设置标签的地方。遗憾的是,当稍后渲染时,如果$linkName包含变音符号,则结果将为空(变音符号只是我的测试对象,实际范围未知)。

出于调试目的,我已将该部分扩展为如下所示:

  $linkName = Tx_Downloads_Utility_Filename::construct( $download );
  $download->setLinkText( $linkName );
  $this->flashMessages->add( "'" . strlen( $linkName ) . "'" );
  $this->flashMessages->add( urlencode( $linkName ) );
  $this->flashMessages->add( $linkName );

结果是: enter image description here 请注意,不会呈现第三条Flash消息。


但它不会像没有变形金刚一样被渲染。例如,这是我正在调试的记录:

enter image description here

链接字段(图像图标和31.06KB之间)是空白的,但应该说Text_File_Sömething.jpg。字符串Sömething在模板的另一个位置完全呈现。

Fluid template的问题是什么?

1 个答案:

答案 0 :(得分:3)

抱歉,这不是很清楚。接下来尝试: 你调用Tx_Downloads_Utility_Filename::construct($linkName)(默认情况下)调用Tx_Downloads_Utility_Filename::clean($linkName),通过下划线替换任何与正则表达式/([[:alnum:]_\.-]*)/不匹配的内容,再次删除所有特殊字符。 编码似乎有问题(可能你的db没有设置为UTF-8编码)所以Text_File_Sömething实际上变成了Text_File_Sömething和clean()方法把它变成无效的字符串。首先尝试使用utf8_encode()上的$filename