2017-01-22 173 views
0

我使用COM来生成来自PHP的word文档。当将字符转换为生成无用汉字和一些数字的单词书签模板时,我有一个大问题。来自php的特殊字符/统一码/特殊符号word

这里是我的PHP字符串值 - Brüel & Kjær

这是Word文档的文本后生成 - Brüel & Kjær1墄

这里是我的转换方法在PHP中:

$text="Brüel & Kjær"; 
$text = iconv(mb_detect_encoding($text, mb_detect_order(), true), "UTF-8",$text); 
$text = htmlspecialchars_decode($text); 
$text=html_entity_decode($text, ENT_QUOTES, 'utf-8'); 

这是如何将COM书签变量添加到值的:

$PHPWord = new COM("word.application", NULL, CP_UTF8); 
$PHPWord->Documents->Open(realpath($template)); 
$bookmark = $PHPWord->ActiveDocument->Bookmarks("bookmark1"); 
$bookmark = $bookmark->Range; 
$bookmark->Text=$text; 
$PHPWord->Documents[1]->SaveAs('temp/' . $template); 

我是我的代码中的字符转换问题。但我在互联网上搜索,我找不到我的问题的工作解决方案。你能帮我解决这个问题吗?

是他们的方式发送HTML到这个书签或任何转换?

回答

0

OMG几乎完成这件事:

$text="Brüel & Kjær"; 

$PHPWord = new COM("word.application", NULL, CP_UTF8); 

替换为:

$PHPWord = new COM("word.application"); 
$PHPWord->Documents->Open(realpath($template)); 
$bookmark = $PHPWord->ActiveDocument->Bookmarks("bookmark1"); 
$bookmark = $bookmark->Range; 
$bookmark->Text=html_entity_decode($text); 
$PHPWord->Documents[1]->SaveAs('temp/' . $template);