使用php在另一个页面中获取utf8 urlencoded字符

时间:2011-10-12 09:37:10

标签: php utf-8

我在utf8字上使用了rawurlencode。 例如

$tit = 'தேனின் "வாசம்"';
$t = (rawurlencode($tit)); 

当我点击utf8单词($ t)时,我将使用.htaccess转移到另一个页面,我使用$ _GET ['word']获取utf8单词;

单词显示为தேனàà¿à®©à_“ààμாசம௔而非实际单词。我怎样才能获得实际的utf8字样。我使用了标头charset = utf-8。

3 个答案:

答案 0 :(得分:0)

您使用rawurldecode($_GET['word']);了吗?你是否对你的PHP文件使用UTF-8编码?

答案 1 :(得分:0)

我的评论是第一位的,但应该是一个答案:

magic_quotes已关闭?如果它在2011年仍然存在,那将会很奇怪。但你应该检查并做stripslashes

答案 2 :(得分:0)

<?php
$s1 = <<<EOD
தேனினà¯_"வாசமà¯"
EOD;
$s2 = <<<EOD
தேனின் "வாசம்"
EOD;

$s1 = mb_convert_encoding($s1, "WINDOWS-1252", "UTF-8");

echo bin2hex($s1), "\n";
echo bin2hex($s2), "\n";
echo $s1, "\n", $s2, "\n";

输出:

e0aea4e0af87e0aea9e0aebfe0aea9e0af5f22e0aeb5e0aebee0ae9ae0aeaee0af22
e0aea4e0af87e0aea9e0aebfe0aea9e0af8d2022e0aeb5e0aebee0ae9ae0aeaee0af8d22
தேனின��_"வாசம��"
தேனின் "வாசம்"

您可能只是没有将数据显示为UTF-8,并且您将其显示为ISO-8859-1或类似数据。