带有特殊字符的文件名

时间:2015-07-02 12:44:47

标签: php swiftmailer

我正在使用SwiftMailer并尝试在其文件名中添加带有特殊字符和空格的附件。如何添加这样的文件,例如。 “InformationenfüraldiMitglieder.pdf”?

我使用这个命令:

$message->attach("resources/assets/docs/Informationen für alle Mitglieder.pdf");

...但我总是找不到文件错误。当我更换所有特殊字符时,它可以正常工作吗?

是否有任何“解码功能”才能使其正常工作?对于白色空间,我可以用“\ x20”轻松替换它们并且它可以工作。但是有什么比“äöü”这样的其他角色呢?

2 个答案:

答案 0 :(得分:2)

$message->attach("resources/assets/docs/Informationen_fuer_alle_Mitglieder.pdf");

只需重命名.pdf即可。并且在将来不要在网址中使用特殊字符和空格。

也许这对你有用:

$string = "resources/assets/docs/Informationen für alle Mitglieder.pdf"
$string  = str_replace(' ', '%20', $string); // %20 means white space
$string  = str_replace('ü', '&uuml', $string); // %uuml means ü
echo $string;

EDIT2:

http://www.webspace-finden.de/html-php-ae-oe-ue-und-szett-zeichencodes/

  

Ä - & AUML;

     

ä - & AUML;

     

Ö - & Ouml;

     

ö - & ouml;

     

Ü - & Uuml;

     

ü - & uuml;

     

删除“&”后面的空白区域否则我无法展示

http://php.net/manual/de/function.urlencode.php

<?php
echo urlencode($string); >;
?>

EDIT3:

$string = "resources/assets/docs/Informationen%20f&uumlr%20alle%20Mitglieder.pdf"

答案 1 :(得分:1)

您是否尝试按照the documentation正确使用附加方法?

$message->attach(Swift_Attachment::fromPath('resources/assets/docs/Informationen für alle Mitglieder.pdf'));

此外,文件名中的空格或扩展的ascii没有任何问题。没有很多操作系统不支持它。