Имена пользователей Unicode

Спасибо, Майкл Браун.

Я протестировал это: в браузере всё работает, но в среде программирования — нет, так как правило гласит, что для передачи этого протокола могут использоваться только символы ASCII.

Причина ошибки:

TypeError: Invalid character in header content [“Api-Username”]

Обратите внимание на лог: рекомендуется добавить кодирование или декодирование в UTF-8 для корректного сопоставления.

  1. Тестовый интерфейс

  1. Веб-адрес

https://xxxxxxxx/posts.json

Accept:application/json
api-key:f9c13aafa9b21baf778161bff66a62533ba650b6e4542e3e9788e98c55ded869
Api-Username:system

Результат теста:

OK

Accept:application/json
api-key:f9c13aafa9b21baf778161bff66a62533ba650b6e4542e3e9788e98c55ded869
Api-Username:风之旅人

{“status”:500,“error”:“Internal Server Error”}

Accept:application/json
api-key:f9c13aafa9b21baf778161bff66a62533ba650b6e4542e3e9788e98c55ded869
Api-Username:%E8%BF%90%E6%80%9D

У вас нет прав на просмотр запрошенного ресурса. Имя пользователя API или ключ недействительны.

Причина ошибки:

Использование китайских символов в заголовке недопустимо. Их необходимо закодировать с помощью encodeURI() для передачи на сервер, а сервер должен декодировать их с помощью decodeURI(), чтобы распознать.

Предлагается добавить проверку: если имя пользователя не найдено, попытаться применить decodeURI для его сопоставления.