【发布时间】:2014-07-18 16:08:29
【问题描述】:
我有这个简单的 PHP 脚本:
<!DOCTYPE html>
<html lang="es-ES" xmlns="http://www.w3.org/1999/xhtml" xml:lang="es-ES">
<head>
<meta charset="iso-8859-1" />
</head>
<body><p><?php
if(isset($_GET['echo'])){
echo $_GET['echo'];
}
?></p>
<form action="" method="get">
<input type="text" name="echo" value="" />
</form>
<p>áéíóúàèìòùñ</p>
</body>
</html>
提交西班牙语单词“cañón”会生成 GET 参数字符串 ?echo=ca%F1%F3n,我的主机会回答 406 Not Acceptable 错误。保留字符集 iso-8859-1 对我来说很重要,并将脚本文件编码为 ANSI。
在表单元素中使用accept-charset="UTF-8" 属性可以避免错误,但在页面中回显的单词显示为“cañón”。
是否有某种配置 Apache 的方法,希望使用 .htaccess,以避免这种行为并在结果页面上正确呈现单词“cañón”?
感谢您的帮助。
【问题讨论】:
-
危险:此代码为vulnerable to XSS。用户输入在插入 HTML 文档之前需要转义!
-
我知道,昆汀。这只是一个测试脚本。
标签: php html .htaccess utf-8 get