首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DotNet 5.0 IdnMapping.GetAscii抛出ArgumentException

DotNet 5.0 IdnMapping.GetAscii抛出ArgumentException
EN

Stack Overflow用户
提问于 2021-10-12 13:26:48
回答 1查看 132关注 0票数 3

我编写了一个控制台应用程序示例:

  1. 获取当前的DotNet版本
  2. ,然后从拉丁文字符串(每个标签等于或小于63个符号长度,总字符串长度(包括点)为254个符号长)获取

代码语言:javascript
运行
复制
static void Main(string[] args)
{
    Console.WriteLine("Environment.Version: " + Environment.Version);

    new IdnMapping().GetAscii(
        "sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss." +
        "sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss." +
        "sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss." +
        "ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss");

    Console.WriteLine("Hello World!");
}

当我在.Net核心3.1上运行程序时,输出是:

代码语言:javascript
运行
复制
Environment.Version: 3.1.13
Hello World!

当我在.Net 5.0上运行程序时,输出是:

代码语言:javascript
运行
复制
Environment.Version: 5.0.9
Unhandled exception. System.ArgumentException: Decoded string is not a valid IDN name. (Parameter 'unicode')
   at System.Globalization.IdnMapping.IcuGetAsciiCore(String unicodeString, Char* unicode, Int32 count)
   at System.Globalization.IdnMapping.GetAscii(String unicode, Int32 index, Int32 count)
   at System.Globalization.IdnMapping.GetAscii(String unicode, Int32 index)
   at System.Globalization.IdnMapping.GetAscii(String unicode)
   at Program.Main(String[] args)

DotNet 5中对于IdnMapping是否有任何破坏变化?输入字符串的要求应该是什么?

EN

回答 1

Stack Overflow用户

发布于 2021-10-18 10:50:19

.NET 3.1在Windows上使用NLS (National Language Support) API,在Unix上使用ICU ()库,这导致了在不同平台上运行应用程序时的行为差异

.NET 5.0使用ICU库,因此,IDN的某些行为与.NET 3.1 https://learn.microsoft.com/en-us/dotnet/core/extensions/globalization-icu不同

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69541426

复制
相关文章

相似问题

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