Phpword和重音字符

时间:2017-01-23 08:40:30

标签: diacritics non-ascii-characters phpword

嗨,我有一个PHP字的问题。当我在文件中使用重音字符时,文件已损坏且无法打开。

<?php
require_once 'PHPWord.php';
$PHPWord = new PHPWord();

$document = $PHPWord->loadTemplate('Documents/LM.docx');
$document->setValue('Value1', "example with accent évian");
$document->save('Documents/LMD.docx');

?>

1 个答案:

答案 0 :(得分:1)

我假设您的代码生成一个未使用特殊重音字符时未损坏的word文件。但无论如何,你可以试试下面的版本吗? loadTemplate函数在0.13.0版本中已弃用,而应使用TemplateProcessor而不是+ htmlspecialchars包装通常应用于文本内容。

$templateProcessor = new PhpWord\TemplateProcessor('Documents/LM.docx');
$templateProcessor->setValue('Value1', htmlspecialchars('example with accent évian', ENT_COMPAT, 'UTF-8'));
$templateProcessor->saveAs('Documents/LMD.docx');

这对我有用,与PhpWord 0.13.0没有任何问题