Rails Ruby 中文编码问题?

vzyw · 2017年08月02日 · 最后由 cxh116 回复于 2017年08月02日 · 1920 次阅读

在写一个 oauth1.0 认证,现在的情况是如果 body 的参数是英文字母,可以认证成功,如果是中文或者带有英文的英文,就认证失败。
对方的认证接口没问题,我用 postman 可以模拟成功。
请问下大家在中文编码上有没有遇到什么坑,到底是什么问题导致签名不成功的?

签名过程会先对中文进行uriencode,签名方式是 HMAC-SHA1

签名的 uriencode 有编码要求没有? 比如:

'中文'的 UTF-8 的 urlencode 的值和 GBK 是不一样的。

URI.encode('中文') # %E4%B8%AD%E6%96%87
URI.encode('中文'.encode('GBK')) # %D6%D0%CE%C4
需要 登录 后方可回复, 如果你还没有账号请 注册新账号