2016-08-20 2 views
2

Я использую класс Uri для запроса данных с использованием php-скрипта. В моем случае мне нужно использовать URL, содержащий специальный символ: é или '. Вот мой фрагмент кода:Uri Class не преобразует правильно специальный char

string NomArret = "Université"; 

uri = new Uri("http://localhost/getdata.php?aarret=" + NomArret); 

Но это возвращение 0 результатов. Я отлажена, и я заметила, что Ури закодировать этот URL как:

http://84.75.112.69/getdata.php?aarret=Universit%C3%A9 

Таким образом, он преобразует символ é в %C3%A9. На этом сайте (www.degraeve.com/reference/urlencoding.php) Я видел, что char é конвертируется в %E9.

При попытке вручную эту кодировку:

http://84.75.112.69/getdata.php?aarret=Universit%E9 

Это работает! Итак, как я могу адаптировать свой код, чтобы иметь возможность правильно преобразовывать специальный символ?

+0

'% C3% A9' - это hex, поэтому вы можете преобразовать символ в шестнадцатеричный. –

ответ

0

Вы можете использовать Uri.EscapeDataString? (Я не C# dev, поэтому я не могу это подтвердить)

+0

Это не дает ответа на вопрос. Когда у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы сможете [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуют разъяснений у аськи) (http://meta.stackexchange.com/questions/214173/why-do-need-50-reputation-to-comment-what-can- я-делать-вместо этого). - [Из обзора] (/ review/low-quality-posts/13415261) –

+1

На самом деле это ответ, потому что он может быть необходимой функцией. Но да, правильным ответом будет «Попробуйте использовать URI.EscapeDataString». Извините за эту ошибку: / –

Смежные вопросы