QTextBrowser超链接点击丢失大写

时间:2014-02-05 12:16:44

标签: qt url

我正在使用Qt 4.6.3

当文本浏览器html有参考

<a href="myprotocol://ABC"/>click me!</a>

然后点击,它会发出带有网址

的anchorClicked信号
myprotocol://abc

如何修复(我需要正确的案例......)?

2 个答案:

答案 0 :(得分:3)

QUrl始终小写主机名。

  

QUrl符合RFC 3986(统一资源标识符:通用语法)中的URI规范,并包含RFC 1738(统一资源定位符)的方案扩展。 QUrl中的大小写折叠规则符合RFC 3491(Nameprep:国际化域名(IDN)的Stringprep配置文件)。

     

...

     

请注意,Qurl符合的Nameprep中的大小写折叠规则要求主机名始终转换为小写,而不管使用的是Qt :: FormattingOptions。

From Qt 4.7 documentation,最接近4.6.3)

如果您使用“假”网址只是在应用程序周围传递一些数据,则可以使用虚拟主机名保留大小写,并将实际信息作为路径或查询传递。例如。 myprotocol:///ABC(与编写localhost / ABC相同)。

答案 1 :(得分:2)

在这种情况下,ABC作为您网址的主机(域)名称进行处理。虽然格式不限制它,并且主机名不区分大小写,但建议URL应区分大小写。例如,W3 states

  

URL通常区分大小写(机器除外)   名)。可能存在URL或URL的一部分,但大小写不存在   问题,但识别这些可能并不容易。用户应该永远   认为URL区分大小写。

我认为,浏览器也遵循该规则:所有带大写字符的网址都转换为小写。我在Chrome,FF和IE上试过这个。