在写一个 oauth1.0 认证,现在的情况是如果 body 的参数是英文字母,可以认证成功,如果是中文或者带有英文的英文,就认证失败。 对方的认证接口没问题,我用 postman 可以模拟成功。 请问下大家在中文编码上有没有遇到什么坑,到底是什么问题导致签名不成功的? 签名过程会先对中文进行uriencode,签名方式是 HMAC-SHA1
uriencode
HMAC-SHA1
签名的 uriencode 有编码要求没有? 比如:
'中文'的 UTF-8 的 urlencode 的值和 GBK 是不一样的。
URI.encode('中文') # %E4%B8%AD%E6%96%87 URI.encode('中文'.encode('GBK')) # %D6%D0%CE%C4