2017-05-19 66 views
0

我的PHP脚本是从MySQL表包含字符串,如下面让行:用htmlspecialchars“禁典点”验证错误

$string = 'ï¼’ã¤ã®ä¹³é…¸èŒã®ç¨'; 

有没有办法来呼应这些类型的字符串到浏览器,而不通过HTML5验证器运行文档时获取“禁止代码点”?

我曾尝试以下:

htmlspecialchars($string); 
htmlspecialchars($string, ENT_SUBSTITUTE, 'UTF-8'); 
htmlspecialchars($string, ENT_DISALLOWED, 'UTF-8'); 
htmlspecialchars(mb_convert_encoding($string, 'UTF-8'); 

但所有这些表达式仍然导致了“禁典点”的错误。网页的编码是通过meta标签已经被设置为UTF-8:

<meta charset="UTF-8"> 

回答

0

为我工作的解决方案是:

htmlspecialchars($string, ENT_SUBSTITUTE | ENT_DISALLOWED); 

这种转换尽可能多的字符可能UTF-8和去除一切。

1

PHP函数htmlentities()可能是你在找什么。 该函数将把提供给它的适用字符转换为HTML实体。

例如:

$string = 'ï¼’ã¤ã®ä¹³é…¸èŒã®ç¨'; $string = htmlentities($string); echo $string;

将您的ï¼’ã¤ã®ä¹³é…¸èŒã®ç¨字符串转换为&iuml;&frac14;&rsquo;&atilde;&curren;&atilde;&reg;&auml;&sup1;&sup3;&eacute;&hellip;&cedil;&egrave;&OElig;&atilde;&reg;&ccedil;&uml;uml;可用于没有错误的HTML网页上显示。此功能

更多信息,请访问:https://secure.php.net/manual/en/function.htmlentities.php

+0

谢谢。但是,我仍然以无效字符结束。 –