Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 输入包含unicode的IPAddress.TryParse_C#_.net_Unicode_Ip Address - Fatal编程技术网

C# 输入包含unicode的IPAddress.TryParse

C# 输入包含unicode的IPAddress.TryParse,c#,.net,unicode,ip-address,C#,.net,Unicode,Ip Address,根据MSDN,ipString不能包含Unicode字符,否则将引发ArgumentException 是否有人可以在本地控制台应用程序中重新编程,我尝试了多个unicode字符,但无法重新编程 我们在一些服务器日志中看到了类似的错误: 无法封送:遇到不可映射字符。但无法记录哪个输入破坏了代码 更新,堆栈跟踪的一部分: System.ArgumentExceptionMessage0:无法封送:遇到不可映射字符;在System.String.ConvertToAnsi(Int32 iMaxDBC

根据MSDN,ipString不能包含Unicode字符,否则将引发ArgumentException

是否有人可以在本地控制台应用程序中重新编程,我尝试了多个unicode字符,但无法重新编程

我们在一些服务器日志中看到了类似的错误:

无法封送:遇到不可映射字符。但无法记录哪个输入破坏了代码

更新,堆栈跟踪的一部分:
System.ArgumentExceptionMessage0:无法封送:遇到不可映射字符;在System.String.ConvertToAnsi(Int32 iMaxDBCSCharByteSize、Boolean fBestFit、Boolean fThrowOnUnmappableChar、Int32&cbLength)——在System.StubHelpers.CSTRMarshaler.ConvertToNative(Int32标志、字符串streamaged、IntPtr pNativeBuffer)——在System.Net.UnsafeNclNativeMethods.OSSOCK.WSAStringToAddress(String addressString,AddressFamily AddressFamily,IntPtr lpProtocolInfo,Byte[]socketAddress,Int32和socketAddressSize)--在System.Net.IPAddress.InternalParse(String-ipString,Boolean-tryParse)--在System.Net.IPAddress.tryParse(String-ipString,IPAddress和address)--

MSDN注释有些奇怪(因为任何字符甚至
1
都是Unicode字符)…通常,当输入为无效文本时,TryParse不会抛出

您的错误似乎与封送处理有关(如“从托管代码调用COM对象”或“PInvoke某些本机代码”)。如果您确信错误来自于
TryParse
——最简单的方法是查看System.Dll中
TryParse
的实际实现,并尝试追溯哪些输入和环境会导致此类异常

以下是可能的情况(类似IPv6的地址,带有俄语字符):


您提供的案例没有重新说明…我尝试了.net 2.0、3.5、4.0和Win7/Win2k8R2。您尝试了哪些字符?
  System.Net.IPAddress.TryParse("ф:ф", out v);