Я написал код C #, который вызывает Google Chrome для загрузки определенного URL на локальный жесткий диск компьютера. Код C # уже кодирует URL (заменяет пробельные символы на% 20), и это нормально работало, пока пару недель назад эта проблема не возникла!

Кажется, что самый быстрый лейкопластырь модифицирует код C #, чтобы не заменять "" на% 20. Но поведение Chrome может измениться в будущем, или у некоторых клиентов может не быть установленной версии Chrome.

Я думаю, что устойчивое решение состоит в том, чтобы сказать Chrome либо кодировать, либо не кодировать URL. Теперь мой вопрос:

Есть ли переключатель Chrome, который заставляет его либо переводить URL, либо игнорировать его?

У него есть настройка или опция для этого?

Я нашел несколько списков с переключателями Chrome здесь и здесь. Однако оба эти списка являются неполными и ссылаются на эту ссылку, которая, кажется, не работает!

Заранее спасибо.

1 ответ1

1

Наиболее вероятная причина - отсутствие протокола в адресе, который вы передаете в Chrome.

Я предполагаю, что вы передаете локальный путь к файлу, такой как C:\mypath\something%20here.html .

Хром есть (правильно!) утверждение, что это локальный путь и экранирование символов, которые должны быть защищены в URL (так как % является допустимым символом для имен файлов).

Правильный способ будет либо:

  • дать Chrome нормальный путь к файлу с пробелами и позволить ему кодировать то, что нужно кодировать
  • дать правильный URL, где все уже должно быть закодировано - протокол для локальных URL-адресов file://

Таким образом, в случае C:\my path\my file.html оба они должны работать:

  • C:\my path\my file.html
  • file:///C:/my%20path/my%20file.html
  • file://c:\my%20path\my%20file.html (будет преобразован в вышеперечисленное Chrome)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .