我遇到了一个特定的字符串(它不是完全可打印的,但你可以在下面看到)导致htmlspecialchars()返回一个零长度的字符串.有什么方法可以修复吗?
$Stmnt = 'SELECT subject_name FROM bans WHERE id = 2321';
$Fetch = $Conn->query($Stmnt);
if(!$Fetch)
die('Could not query DB');
while($Row = $Fetch->fetch_array(MYSQLI_ASSOC))
{
$RawName = $Row['subject_name'];
$RawLen = strlen($RawName);
echo('RAW NAME: ['.$RawName.']'.', LENGTH: ['.$RawLen.']'.'<br />');
for($i = 0; $i < $RawLen; $i++)
echo('CHAR '.$i.' = ['.$RawName[$i].'] (ORD: '.ord($RawName[$i]).')<br />');
$CleanName = htmlspecialchars($RawName, ENT_QUOTES, 'UTF-8');
$CleanLen = strlen($CleanName);
echo('CLEAN NAME: ['.$CleanName.']'.', LENGTH: ['.$CleanLen.']'.'<br />');
for($i = 0; $i < $CleanLen; $i++)
echo('CHAR '.$i.' = ['.$CleanName[$i].'] (ORD: '.ord($CleanName[$i]).')<br />');
}
$Fetch->close();
echo('DONE'); …Run Code Online (Sandbox Code Playgroud)