【问题标题】:Why won't my extension render umlauts?为什么我的扩展不会呈现变音符号?
【发布时间】:2012-05-25 21:10:10
【问题描述】:

我正在开发一个在网站上显示下载的扩展程序。您可以通过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 );

结果输出是: 请注意,不会呈现第三条 flash 消息。


但这并不是说不会呈现变音符号。例如,这是我正在调试的记录:

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

我的Fluid template有问题吗?

【问题讨论】:

  • 这很奇怪。你能试着调试一下吗?
  • @pcampe:遗憾的是,没有使用实际的调试器(我没有工作设置)。如果您不知道从哪里开始,调试()-调试非常困难:(

标签: typo3 fluid extbase


【解决方案1】:

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

【讨论】:

  • 太棒了!我在看完全错误的地方。我现在使用this suggestion 来转换文件名:) 谢谢
猜你喜欢
  • 2023-03-18
  • 2011-01-22
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-19
相关资源
最近更新 更多