Это выстрел в темноте, и я заранее извиняюсь, если этот вопрос звучит как бред сумасшедшего.
В рамках интеграции с третьей стороной мне нужно UTF8-кодировать некоторую строковую информацию, используя C #, чтобы я мог отправить ее на целевой сервер через многочастную форму. Проблема в том, что они отклоняют некоторые из моих представлений, возможно потому, что я неправильно кодирую их содержание.
Сейчас я пытаюсь выяснить, как тире или дефис - я не могу сказать, что это, просто глядя на него - получен или интерпретирован целевым сервером как ?~@~S
(да, это строка из 5 символов, и ваш браузер не дает сбоя). И, к сожалению, у меня недостаточно глубокого понимания Encoding.UTF8.GetBytes()
, чтобы знать, как использовать байтовый массив, чтобы начать определять, где может быть проблема.
Если кто-нибудь может дать какие-либо советы или рекомендации, я был бы очень признателен. До сих пор моим единственным другом был MSDN, и в этом мало кто знает.
ОБНОВЛЕНИЕ 1 : После еще нескольких копаний я обнаружил, что использование System.Web.HttpUtility.UrlEncode()
для кодирования символа EM DASH ("-") закодирует его в "% e2% 80% 94" .
В настоящее время я отправляю эту информацию в сообщении HttpWebRequest
с типом содержимого "application / x-www-form-urlencoded" - может ли это быть причиной проблемы? И если да, то как правильно кодировать серию пар имя-значение, значения которых могут содержать символы Unicode, чтобы сервер мог ожидать запрос UTF-8?