¿Cómo manejar caracteres no ASCII en la cabecera Api-Username?

Hola,

Estoy integrando con la API de Discourse usando RestSharp y me encuentro con un problema con los nombres de usuario que contienen caracteres no ASCII (específicamente umlauts alemanes). Necesito suplantar a un usuario con el nombre de usuario foö (contiene ö).

Al enviar el nombre de usuario sin procesar en la cabecera Api-Username, recibo: Request headers must contain only ASCII characters (Las cabeceras de la solicitud deben contener solo caracteres ASCII).

Al codificar la URL del nombre de usuario (Uri.EscapeDataString("foö")fo%C3%B), la autenticación falla con: {"errors":["Du bist nicht berechtigt, die angeforderte Ressource anzuzeigen. Der API-Benutzername oder -Schlüssel ist ungültig."],"error_type":"invalid_access"} (acceso denegado / usuario no existente).

Estoy utilizando una clave de API con privilegios de administrador. Endpoint: POST /posts.json para crear temas en nombre de los usuarios.

¿Cuál es la forma correcta de pasar nombres de usuario con caracteres no ASCII en la cabecera Api-Username? ¿Debería:

  1. Usar un método de codificación diferente?
  2. Usar un ID de usuario en su lugar (si es así, ¿qué nombre de cabecera)?
  3. ¿Algo completamente diferente?

¡Gracias por cualquier orientación!

Buen apunte @xbd, esto se solucionará con

Pero mientras tanto…

… puedes usar el ID de usuario (de hecho, es preferible al nombre de usuario si lo tienes) a través del encabezado Api-User-Id

curl -X GET "https://tu-discourse.com/admin/users.json" \
  -H "Api-Key: tu-api-key" \
  -H "Api-User-Id: 123"