您好,我正在使用 php,我需要比较我的数组中的数据和读取的验证码中的数据。但我遇到了 html 编码的问题。我的数组中的示例:
"osiemnaście" => 18,
和来自验证码的数据:
osiemnaście
如何比较这些数据?我已经尝试过“html_entity_decode()”但没有结果。
看起来像带有重音“s”字符的字符集/编码问题。确保在服务器端和 HTML 端都设置了 UTF-8。
自从我做了很多 PHP 以来已经有一段时间了,但是这个函数可能很有用:http: //php.net/manual/en/function.mb-convert-encoding.php
为了解码十六进制实体,你必须做一些工作,因为 PHP 内置函数不包括这些。
$string = "osiemnaście";
$string = preg_replace('/\&\#x([a-fA-F0-9]+)\;/me', 'mb_convert_encoding("&#".hexdec("\\1").";", "UTF-8", "HTML-ENTITIES")', $string);
// $string is now "osiemnaście"
echo ($string == "osiemnaście")
? "success"
: "failure";
你的选择是反过来做:
htmlentities("osiemnaście") == $captchainput
您必须关心 htmldocument 中的文件和输入编码。
您可以使用 php 定义文档编码:
header('Content-Type: text/html; charset=utf-8');
或在 html 中:<meta charset="utf-8" />