gpt4 book ai didi

php - 我如何在 php 中编码和解码来自 IDN 的 url?

转载 作者:搜寻专家 更新时间:2023-10-31 20:55:22 25 4
gpt4 key购买 nike

我正在做一个站点来检查、注册域等,我必须使其符合 IDN。现在我有这样的东西:

echo $domain;       
$domain = idn_to_ascii($domain);
echo $domain;
$domain = idn_to_utf8($domain);
echo $domain;

我得到这个:

testing123ásd123xn--testing123sd123-wjbtesting123ĂĄ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,但谷歌可以帮助我。任何模组?我应该怎么处理这个问题?关闭它,删除它?就这样放着吗?

最佳答案

正如您已经指出的那样,ĂĄ 似乎是非 UTF8 文档中显示的 á 字符的 UTF8 表示。

您可以使用 iconv() 在字符集之间进行转换。但是,请注意,非 Unicode 字符集不能代表完整的国际字符集,因此必须将缺失的字符转换为 HTML 实体。例如:

<?php

$domain = idn_to_utf8($domain);
echo htmlentities($domain, ENT_COMPAT, 'UTF-8');

?>

无论如何,对整个项目使用 UTF-8 可能会更容易。

关于php - 我如何在 php 中编码和解码来自 IDN 的 url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3221616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com