如何比较包含特殊字符的JavaScript字符串与PHP's htmlentities()编码的字符串

How to compare a JavaScript string containing special characters to a string encoded by PHP's htmlentities()?

本文关键字:字符串 编码 PHP htmlentities JavaScript 何比较 比较 包含 特殊字符      更新时间:2023-09-26

我使用PHP从MySQL数据库获取数据,然后将其回显到页面。我使用htmlentities()编码字符串以避免XSS问题。我需要比较用户在文本框中写入的文本与回显的数据,但我遇到了一个问题。假设数据库中的数据为le beau-frère,则返回的数据如下所示:

le beau-frère

用户输入的数据如下所示:

le beau-frère

如果我试图直接比较这两个字符串,它们显然是不相同的。

如何将其中一个字符串转换为另一个字符串的格式?

我将使用innerText -它将从

转换htmlentities数据
le beau-frère

le beau-frère

如果你已经将保存的数据直接返回到javascript中,那么为了使用innerText解决方案,你必须使用innerHTML将其保存到div中,然后使用innerText再次获取它。例如

<div id="foo"></div>
<script type="text/javascript">
document.getElementById('foo').innerHTML = 'le beau-fr&egrave;re';
var savedData = document.getElementById('foo').innerText;
</script>

如果你想让它保持整洁,我会在JavaScript中创建一个临时的div,然后删除它。