J'ai besoin d'URL encoder certaines périodes car je dois passer un chemin de document et c'est comme ça
http://example.com/test.aspx?document=test.docx
Donc test.docx me cause une erreur de caractère illégal. Je dois donc le changer en
. --> %2E
J'ai essayé d'utiliser Server.UrlEncode
string b = Server.UrlEncode("http://example.com/test.aspx?document=test.docx");
mais je reçois
"http%3a%2f%2fexample.com%2ftest.aspx%3fdocument%3dtest.docx"
Dois-je donc utiliser comme une chaîne de remplacement et le faire manuellement et remplacer toutes les périodes par ce code?
La période où il n'y a pas de problème (étant donné que% 2E ne résout pas le problème). Un point est un caractère URL parfaitement valide quel que soit le problème, ce n'est pas le point. Vérifiez la trace de pile de l'erreur lancée ou publiez les détails complets de l'erreur.
Et vous ne devriez pas être l'URL encodant le chemin entier. Seul le paramètre de chaîne de requête valeur.
string b = "http://example.com/test.aspx?document=" + Server.UrlEncode("test.docx");
Recevez-vous toujours l'erreur si vous essayez de cette façon?
Je ne toucherais pas SharePoint avec un poteau de dix pieds. Cependant, échapper à la période n'empêcherait pas nécessairement SharePoint de faire ses manigances. Mais je suppose que vous devriez au moins l'essayer.
Server.UrlEncode("test.docx").Replace(".", "%2E");
C'est une très vieille question, mais je suis tombé sur cette recherche d'un problème similaire. J'ai collé un "/" à la fin de mon URL avec des points et cela a contourné le problème.