Ури класс и ИРИ

Я борюсь с классом Uri в.net при разборе IRI.

Рассмотрим этот 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 возвращал правильную препрезентацию строки, сбежавшую в соответствии с последней.

Почему это так? Есть ли способ изменить это поведение?

0 ответов

Другие вопросы по тегам