Php 将href中的UTF-8字符集更改为ISO/IEC 8859-2:1999
我有一个非常简单的表单,由两个文件组成: FORM.PHPPhp 将href中的UTF-8字符集更改为ISO/IEC 8859-2:1999,php,html,Php,Html,我有一个非常简单的表单,由两个文件组成: FORM.PHP <form action="test.php" method="post"> <input type='text' name = 'name' value="ł ą ź ć ę ó" > <input id='submit' type='submit' name = 'submit' value="SEND"> </form>` ` 和TEST.PHP <?p
<form action="test.php" method="post">
<input type='text' name = 'name' value="ł ą ź ć ę ó" >
<input id='submit' type='submit' name = 'submit' value="SEND">
</form>`
`
和TEST.PHP
<?php
$name = $_POST['name'];
echo "<a href='http://myaddress/$name/'>NAME</a>"
?>
在表单字段“name”中填写波兰语字符(łąźćęó)
当您单击“发送脚本”时,脚本将生成以下表单的链接:
"<a href='http://myaddress/l a ź ć e ó/'>NAME</a>"
“”
链接应以以下形式生成:
"<a href='http://myaddress/%B3+%B1+%BC+%E6+%EA+%F3/'>NAME</a>"
“”
您是否尝试过:
<?php
$name = $_POST['name'];
echo "<a href='http://myaddress/' . urlencode($name) . '/'>NAME</a>"
?>
您可以使用urlencode(str)。和urldecode(str)来反转
$name = urlencode($_POST['name']);
echo "<a href='http://myaddress/$name/'>NAME</a>"
$name=urlencode($_POST['name']);
回声“”
这将导致类似的结果
<a href='http://myaddress/%C5%82+%C4%85+%C5%BA+%C4%87+%C4%99+%C3%B3/'>NAME</a>
指
编码形式为或“URL编码”。您可以使用函数生成它。该函数获取字符串的原始字节,并将它们转换为百分比编码组。因此,确切的输出取决于输入的字节数,即文本的编码方式 如果您需要“ź”编码到
%BC
,那么它必须用ISO-8859-2编码(如您所说)。有两种方法可以做到这一点:
<form accept-charset="iso-8859-2">
rawurlencode($name)
将导致%B3+%B1+%BC+%E6+%EA+%F3
$name = iconv('UTF-8', 'ISO-8859-2', $_POST['name']);