QUrl url("bword://blood transfusion");
QString res = url.toString();
Почему я получил строку "bword:" вместо "bword://переливание крови"?
Как я могу получить строку «bword://переливание крови» из QUrl?
QUrl url("bword://blood transfusion");
QString res = url.toString();
Почему я получил строку "bword:" вместо "bword://переливание крови"?
Как я могу получить строку «bword://переливание крови» из QUrl?
Синтаксис URL может быть довольно сложным, см. эту статью Википедии. Проблема в том, что ваш URL не содержит поля authority, в нем есть только поле scheme "bword" и путь "//переливание крови". И в соответствии с RFC3986 - Единый идентификатор ресурса (URI): общий синтаксис:
Если полномочия отсутствуют, путь не может начинаться с двух символов косой черты ("//").
Таким образом, ваш URL-адрес недействителен (хотя isValid()
возвращает true). Измените свой код на:
QUrl url("bword:/blood transfusion");
QString res = url.toString();
bword:blood transfusion
тоже подойдет (при условии, что система работает с URN).
- person Donal Fellows; 13.09.2010