2010-12-14 38 views
5

Existe-t-il une solution de contournement pour l'erreur de validation w3c pour un & présent dans des URL ou un autre endroit dans le balisage HTML?
Il dit:w3c baliseur validateur esperluette (&) erreur

& n'a pas commencé une référence de caractère. (& aurait probablement dû être échappé comme &.)

L'esperluette dans mon cas est une partie d'une URL pour miniature gravatar. C'est la partie problématique d'un URL:

c91588793296e2?s=50&d=http%3A%2F%.

Répondre

9

pour chaque signe & vous avez écrire & dans votre exemple, il serait:

c91588793296e2?s=50&d=http%3A%2F% 
+3

Notez qu'il n'est pas toujours nécessaire de coder les esperluettes, bien qu'il soit probablement plus simple de le faire. Voir http://mathiasbynens.be/notes/ambiguous-ampersands. –

+0

Vous pouvez utiliser une détection regexp pour ajouter automatiquement & s où manquant: 'htmlOut = htmlOut.replaceAll (" & (?! [A-zA-Z] +;) "," & ");' – kernel

+0

J'ai un identifiant -with-facebook code qui ajoute beaucoup d'esperluettes non encodées et crée des erreurs de validation. Dois-je vraiment écrire du code pour corriger l'erreur de quelqu'un d'autre? : / – andreaconsole

4

Remplacer par &

4

devrait être:

c91588793296e2?s=50&d=http%3A%2F%.

avis le &

Je sais qu'il se sent bancal, mais esperluette doivent être codées comme des entités html, qui sont confusément désignées par esperluette.