所以我在使用文本编辑器输入的数据库中保存了文本,因此它中有一些html,如<p></p>
等。这很简单,我只是strip_tags()。我的问题是特殊字符的字符实体名称,如&amp; \ nbsp;和&amp; \ ccedil;和&amp; \ otilde;
我需要它们在pdf上正常显示,但我得到的是:
“Ap&amp; \ oacute; s visita do nosso t&amp; \ eacute; cnico,em anexo enviamos a nossa estimatetiva,como solicitado。 Para mais informa&amp; \ ccedil;&amp; \ otilde; es sobre as nossas Condi&amp; \ ccedil;&amp; \ otilde; es e Servi&amp; \ ccedil; os,por favor visite o nosso网站“
(别介意“\”,我不得不把它放进去,以便字符实体名称显示在这里)
我尝试了多种方法来转换此文字:
strip_tags(iconv('UTF-8','windows-1252',htmlentities($ text))))
strip_tags(iconv('UTF-8','windows-1252',htmlspecialchars($ text)))
strip_tags(iconv('UTF-8','windows-1252',html_entity_decode($ text)))
strip_tags(iconv('UTF-8','windows-1252',html_entity_decode(htmlentities($ text))))
我甚至找到了一个用for循环转换ASCII字符的函数,但这对于有实体名而不是数字的情况不起作用:
用strip_tags(str_ireplace( '&安培; \ NBSP;',',convertASCIIToChar($文本)))
function convertASCIIToChar($str){
$parts = preg_split("/\#(\d+)/",$str,NULL,PREG_SPLIT_DELIM_CAPTURE);
$count = count($parts);
for ($i = 1; $i < $count; $i += 2) {
$parts[$i] = chr($parts[$i]);
}
$str = implode($parts);
return $str;
}
它仍然只是给我上面的文字,并没有转换它。我想也许是一个str_ireplace有2个数组将实体名称与字符或类似的东西相关联?
编辑:这是php,我正在使用fpdf作为pdf部分