Как обрабатывать символы не из ASCII в заголовке Api-Username?

Здравствуйте,

Я интегрируюсь с API Discourse, используя RestSharp, и столкнулся с проблемой при работе с именами пользователей, содержащими не-ASCII символы (в частности, немецкие умлауты). Мне нужно имитировать пользователя с именем foö (содержит ö).

При отправке исходного имени пользователя в заголовке Api-Username я получаю ошибку: Request headers must contain only ASCII characters.

При URL-кодировании имени пользователя (Uri.EscapeDataString("foö")fo%C3%B6) аутентификация не проходит с ошибкой: {"errors":["Du bist nicht berechtigt, die angeforderte Ressource anzuzeigen. Der API-Benutzername oder -Schlüssel ist ungültig."],"error_type":"invalid_access"} (доступ запрещён / пользователь не существует).

Я использую API-ключ с правами администратора. Конечная точка: POST /posts.json для создания тем от имени пользователей.

Как правильно передавать имена пользователей с не-ASCII символами в заголовке Api-Username? Стоит ли мне:

  1. Использовать другой метод кодирования?
  2. Использовать идентификатор пользователя вместо имени (если да, то как называется заголовок)?
  3. Или что-то совершенно другое?

Спасибо за любые советы!

Отличное замечание, @xbd — это будет исправлено в

Но пока что…

… вы можете использовать ID пользователя (это даже предпочтительнее имени пользователя, если он у вас есть) через заголовок Api-User-Id.

curl -X GET "https://your-discourse.com/admin/users.json" \
  -H "Api-Key: ваш-api-ключ" \
  -H "Api-User-Id: 123"