kco*_*ode 3 c# ascii email-address diacritics punycode
当客户输入带有非ascii字符的电子邮件地址时,例如äüö我们的SMTP拒绝处理它们.
所以我认为可能有一个解决方案来自己处理这些域并将它们转换为punyocode.
使用c#有一种简单的方法吗?
这还行吗?
您可以使用Uri.DnsSafeHost转换为Punycode:
using System;
class Test
{
static void Main()
{
Console.WriteLine(ConvertToPunycode("caf\u00e9.com"));
}
static string ConvertToPunycode(string domain)
{
Uri uri = new Uri("http://"+domain);
return uri.DnsSafeHost;
}
}
Run Code Online (Sandbox Code Playgroud)
在app.config中:
<configuration>
<uri>
<idn enabled="All" />
</uri>
</configuration>
Run Code Online (Sandbox Code Playgroud)
结果:
xn--caf-dma.com
Run Code Online (Sandbox Code Playgroud)