Uri班和IRI

时间:2012-08-08 08:20:17

标签: .net uri rfc iri

在解析IRI时,我正在努力解决.net中的Uri类问题。

考虑这个IRI:

var iriStr = "http://example.com/base/植物/名=しそ;使用部=葉";

当我从中创建和Uri(无论iri解析设置)时,我得到以下内容:

var uri = new Uri(iriStr);
Assert.AreEqual(iriStr, uri.ToString()); // this works
Assert.AreEqual(iriStr, uri.AbsoluteUri); // this fails

uri.AbsolutUri返回的实际值是:

http://example.com/base/%E6%A4%8D%E7%89%A9%2F%E5%90%8D%3D%E3%81%97%E3%81%9D%3B%E4%BD%BF%E7%94%A8%E9%83%A8%3D%E8%91%89

似乎Uri类的工作方式与RFC3986中描述的不同,而不是RFC3987规范(尽管msdn说的是其他内容)。我需要Uri#AbsoluteUri根据后者返回正确的字符串prepresentation。

为什么会这样?有什么方法可以改变这种行为吗?

0 个答案:

没有答案