我正在尝试使用Process.Start()
启动带有Unicode符号的URL,但它会给出一个Win32Exception:
An unhandled exception of type 'System.ComponentModel.Win32Exception' occurred in System.dll
Additional information: Das System kann die angegebene Datei nicht finden
(英文:“系统找不到指定的文件”)
我要调用的URL是http://. la(这是一个有效的网址,至少对于Firefox 38而言)
在@Codo的建议之后我改变了我的代码:
string link = "http://.la";
try
{
Process.Start(link);
}
catch (System.ComponentModel.Win32Exception)
{
Process.Start("IExplore.exe", link);
}
答案 0 :(得分:4)
不要让Firefox愚弄你。 URL中不允许使用ASCII码以外的Unicode字符,尤其是表情符号;他们需要编码。 Firefox用户友好,接受它们,显示它们,但一旦执行请求就自动对它们进行编码。
如果Unicode字符在域名中,则需要进行Punycode编码。如果Unicode字符位于域名之后,则需要对其进行URL编码。
您案例的有效网址为:http://xn--ls8h.la/
答案 1 :(得分:0)