echo $domain;
$domain = idn_to_ascii($domain);
echo $domain;
$domain = idn_to_utf8($domain);
echo $domain;
并且我得到了这个:
testing123ásd123 XN - testing123sd123-WJB testing123ĂĄsd123
正如你可以看到解码后的字符串与原始字符串相同我也尝试使用http://phlymail.com/en/downloads/idna/download/类来完成它并获得相同的结果
我尝试过使用:
$charset="UTF-8";
echo $domain;
$domain = idn_to_ascii($domain, $charset);
echo $domain;
$domain = idn_to_utf8($domain);
echo $domain;
我完全一样(除了编码的字符串略有不同)
任何想法?
编辑: 问题解决了!这个Problem in converting string to puny code (in PHP, using phlyLabs's punycode string converter) 原始字符串在iso-8859-2中,并在UTF-8中解码,现在我需要找到如何再次使它成为iso-8859-2,但谷歌可以帮助我。 任何mods?该怎么办?关闭它,擦除它?这样离开吗?
答案 0 :(得分:3)
正如您已经指出的那样,ĂĄ
似乎是非UTF8文档中显示的á
字符的UTF8表示。
您可以使用iconv()在字符集之间进行转换。但是,请注意,非Unicode的字符集不能表示完整的国际字符集,因此必须将缺少的字符转换为HTML实体。 E.g:
<?php
$domain = idn_to_utf8($domain);
echo htmlentities($domain, ENT_COMPAT, 'UTF-8');
?>
无论如何,在整个项目中使用UTF-8可能更容易。