2010-01-19 2 views
0

Aujourd'hui, j'ai trouvé que dans Qt 4.6, QUrl n'analyserait pas une URL si le nom de l'hôte contenait le trait de soulignement.QUrl n'analyse pas le nom d'hôte avec le caractère de soulignement

Je comprends que selon la norme, le trait de soulignement n'est pas autorisé dans le nom de domaine, cependant, il y a des URL avec des caractères de soulignement, en particulier pour certains sous-domaines.

Par exemple, je suis tombé sur l'URL de ce flux:

http://hero_hki.mysinablog.com/rss.php

et qurl ("http://hero_hki.mysinablog.com/rss.php") .toString() retourne "http: /rss.php"

Firefox et Google Chrome peut accéder à cette page de toute façon.

(J'ai testé avec Qt 4.6 TP1. Pas si sûr que ce problème est résolu dans la version, parce que je ne l'ai pas eu le temps de compiler la version sur mon ordinateur portable pour le développement de mon lecteur de flux jouet.)

Aucun conseil? Merci :)

+0

Testé avec la version Qt 4.6.0 et la sortie est la même. Cependant, Qt 4.3.4 génère l'URL correctement. – Job

Répondre

1

Je lis ce qui suit de Qt 4.6.0 changelog:

analyseur de qurl est plus stricte quand pour les noms d'hôtes dans les URL. Qurl impose maintenant des règles STD 3:

  • chaque section de nom d'hôte particulier (entre les points) doit être au plus 63 caractères ASCII de longueur; Seules les lettres, les chiffres et le trait d'union sont autorisés dans la plage ASCII

  • lettres en dehors de la plage ASCII suivent les règles normale IDN

Cela signifie que qurl n'accepte plus certaines URL qui étaient invalides avant, mais ne sont pas interprétées comme telles.

+0

N'a pas remarqué ce changelog. On pourrait comprendre de suivre les règles. Je suis même surpris qu'aucune autre application ne suive cette règle stricte. Et oui, mysinablog n'est pas professionnel pour permettre ce nom de sous-domaine, un mal de tête pour moi maintenant. – Cooy

Questions connexes