0

我有一个表单,在一个文本区域中,我想显示一些具有一些西班牙字符但编码为 html 的文本。问题是它显示的不是西班牙语字符,而是 html 代码。我正在使用 htmlentities 在表单中显示它。我要显示的代码是:

<?php echo htmlentities($string, ENT_QUOTES, "UTF-8") ?>

有什么想法,或者我不应该在表单中使用 htmlentities?谢谢!

编辑 让我们说$string = 'á'

当我做<?php echo $string ;?>我得到á 如果我做<?php echo htmlentities($string, ENT_QUOTES, "UTF-8") ?>我得到&aacute;

我很混乱!

4

3 回答 3

0

如果我理解正确,您需要使用...

<meta charset="utf-8">

在您的页眉中,然后...

<?php echo html_entity_decode($string, ENT_QUOTES); ?>

这会将您的 HTML 实体转换回正确的字符

于 2012-11-08T14:53:08.317 回答
0

您可以尝试在文件顶部显式添加内容类型,如下所示

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

如果它已经编码为 html 那么你现在需要解码它..你可以使用html_entity_decode($string);

您要在表单中回显的字符串应该是&aacute; 从数据库返回的,而不是á

$string = '&aacute;'; // your string as fetched from database
echo html_entity_decode($string);// this will display á in the textarea

在保存到数据库之前,您需要

htmlentities($_POST['txtAreaName'], ENT_QUOTES, "UTF-8"); // return `&aacute;`
于 2012-11-08T16:56:32.237 回答
0

您可能正在寻找 htmlspecialchars。

echo htmlspecialchars('<á>', ENT_COMPAT | ENT_HTML5, "UTF-8");

输出&lt;á&gt;

于 2012-11-08T19:22:55.950 回答