Server.UrlКодировать апостроф (') в Firefox - PullRequest
0 голосов
/ 29 января 2010

Итак, у меня есть гиперссылка lnkTwitter:

И я пытаюсь установить URL-адрес в коде:

lnkTwitter.NavigateUrl = string.Format("http://www.twitter.com/home?status={0}", Server.UrlEncode("I'm Steven"));

Когда я это сделаю и наведу указатель мыши на ссылку, URL-адрес корректно отображается в строке состояния как "http://www.twitter.com/home?status=I'm+Steven",, но фактический URL-адрес, если я нажимаю на ссылку или смотрю ее свойства, равен" http://www.twitter.com/home?status=I%27m+Steven".

По какой-то причине это происходит только в Firefox; в IE меня переводят на правильный URL.

Ответы [ 3 ]

1 голос
/ 30 января 2010

Firefox просто любит удалять URL-адреса, которые он показывает. Хотя это может сбивать с толку, это не должно вызывать проблем с вашим кодом или сайтами, на которые вы ссылаетесь (в данном случае, Twitter).

Если вы перейдете по ссылке, а затем скопируете URL-адрес и вставите его в Блокнот или что-то еще, вы должны получить фактически использованную экранированную форму вместо отображаемой формы без экранирования.

1 голос
/ 30 января 2010

Вы пытались просмотреть исходный код? Если с исходным кодом все в порядке, то с вашим кодом проблем нет.

0 голосов
/ 01 марта 2010

Uri.EscapeDataString, Uri.EscapeUriString, HttpUtility.UrlEncode и HttpUtility.UrlPathEncode доступны для использования в C # из коробки, они не могут преобразовывать все символы точно так же, как это делает функция выхода JavaScript.

Решение: используйте собственную реализацию JScript.Net. Просто укажите ссылку на Microsoft.JScript.dll и используйте метод Microsoft.JScript.GlobalObject.escape () для кодирования вашего URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...