我有一个表单并且在textarea中我想显示一些具有一些西班牙语字符但编码为html的文本。问题是,它显示的是html代码而不是西班牙语字符。我正在使用htmlentities在表单中显示它。我要显示的代码是:
<?php echo htmlentities($string, ENT_QUOTES, "UTF-8") ?>
任何想法或我不应该在表单中使用htmlentities?谢谢!
修改
让我们说$string = 'á'
当我执行<?php echo $string ;?>
时,我得到á
如果我<?php echo htmlentities($string, ENT_QUOTES, "UTF-8") ?>
,我会á
我很困惑!
答案 0 :(得分:0)
如果我理解正确,你需要使用......
<meta charset="utf-8">
在页眉中,然后......
<?php echo html_entity_decode($string, ENT_QUOTES); ?>
这会将您的HTML实体转换回正确的字符
答案 1 :(得分:0)
您可以尝试在文件顶部显式添加内容类型,如下所示
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
如果它已经编码为html,那么你现在需要解码它..你可以使用html_entity_decode($string);
要在表单中回显的字符串应该是从数据库返回的á
,而不是á
$string = 'á'; // 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 `á`
答案 2 :(得分:0)
您可能正在寻找htmlspecialchars。
echo htmlspecialchars('<á>', ENT_COMPAT | ENT_HTML5, "UTF-8");
输出<á>
。