在表单中显示西班牙语字符

时间:2012-11-08 14:44:50

标签: php html forms character-encoding

我有一个表单并且在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") ?>,我会&aacute;

我很困惑!

3 个答案:

答案 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);

要在表单中回显的字符串应该是从数据库返回的&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;`

答案 2 :(得分:0)

您可能正在寻找htmlspecialchars。

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

输出&lt;á&gt;