Api-Username 헤더에서 비-ASCII 문자를 처리하는 방법?

안녕하세요,

RestSharp를 사용하여 Discourse API를 연동하고 있는데, 비-ASCII 문자(특히 독일어 울라우트)가 포함된 사용자 이름으로 인해 문제가 발생하고 있습니다. 사용자 이름이 foö(문자 ö 포함)인 사용자를 impersonate(대리)해야 합니다.

Api-Username 헤더에 사용자 이름을 그대로(raw) 전송하면 다음과 같은 오류가 발생합니다: Request headers must contain only ASCII characters

사용자 이름을 URL-인코딩(Uri.EscapeDataString("foö")fo%C3%B)하여 전송하면 인증이 실패하며 다음 오류가 반환됩니다: {"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 엔드포인트를 호출하고 있습니다.

Api-Username 헤더에 비-ASCII 문자가 포함된 사용자 이름을 전달하는 올바른 방법은 무엇인가요? 다음 중 어떤 방법이 맞을까요?

  1. 다른 인코딩 방법을 사용해야 하나요?
  2. 사용자 ID를 사용해야 하나요? (그렇다면 어떤 헤더 이름을 사용해야 하나요?)
  3. 완전히 다른 접근 방식이 필요한가요?

도움 주시면 감사하겠습니다!

좋은 지적입니다 @xbd - 이 문제는

을 통해 수정될 예정입니다.

하지만 그 동안은…

Api-User-Id 헤더를 통해 사용자 ID를 사용할 수 있습니다(사용자명을 가지고 있다면 사용자명보다 사용자 ID를 사용하는 것이 실제로 더 권장됩니다).

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