首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP / idn_to_ascii / VB.net idn.GetAscii()不会产生正确的小代码/ IDN域

PHP / idn_to_ascii / VB.net idn.GetAscii()不会产生正确的小代码/ IDN域
EN

Stack Overflow用户
提问于 2017-01-17 10:34:52
回答 1查看 92关注 0票数 0

我试图将域:http://pfeffermühle.com转换为一个正确的旁遮普敦格式的IDN域。我使用了vb.net和php,但这两个结果都不正确。

VB.net:

代码语言:javascript
复制
Dim idn As New System.Globalization.IdnMapping()
Dim punyCode As String = idn.GetAscii(http://pfeffermühle.com)

RESULT: punyCode= xn--http://pfeffermhle-06b.com

PHP:

代码语言:javascript
复制
echo idn_to_ascii('http://pfeffermühle.com'); 
RESULT: xn--http://pfeffermhle-06b.com

但正确的结果是:http://xn--pfeffermhle-0hb.com

你可以在这里查一下:

http://www.idnconverter.se/http://xn--pfeffermhle-0hb.com

https://www.punycoder.com/

https://www.charset.org/pages/punycode.php?decoded=http%3A%2F%2Fpfefferm%C3%BChle.com&encode=Normal+text+to+Punycode#results

有什么问题吗?

请帮帮忙。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-17 14:02:16

从字符串中删除“http://”“,它不是域名的一部分,它是使用的协议。

VB.NET

代码语言:javascript
复制
Dim idn As New System.Globalization.IdnMapping()
Dim punyCode As String = idn.GetAscii("pfeffermühle.com")

Console.WriteLine(punyCode)
Console.WriteLine("http://" & idn.GetUnicode(punyCode))

结果:

代码语言:javascript
复制
xn--pfeffermhle-0hb.com
http://pfeffermühle.com

@memme中的

代码语言:javascript
复制
$s1 = "hTtps://pfeffermühle.com";;
$s = trim($s1);

if (idn_to_ascii($s) <> $s)
    {
    if (substr(strtolower($s) , 0, 7) === "http://")
        {
        $s = "http://" . idn_to_ascii(substr($s, 7, strlen($s) - 7));
        }
    elseif (substr(strtolower($s) , 0, 8) === "https://")
        {
        $s = "https://" . idn_to_ascii(substr($s, 8, strlen($s) - 8));
        }
    }

echo $s . "<br />" . idn_to_ascii($s1);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41694813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档