Gem 为什么 omniauth 在两台机器上输出表现不一样

suupic · 2011年11月25日 · 最后由 beenhero 回复于 2012年03月14日 · 2807 次阅读

在 ubuntu 的虚拟机里运行,AuthHash 能正常输出中文 挪到盛大云的 redhat 环境里,就不能显示中文了。都是 utf-8 环境

--- !map:OmniAuth::AuthHash 
provider: weibo
uid: 
info: !map:OmniAuth::AuthHash::InfoHash 
  nickname: "\xE8\x8B\x8F\xE6\x9D\xB0"
  name: "\xE8\x8B\x8F\xE6\x9D\xB0"
  location: "\xE5\x8C\x97\xE4\xBA\xAC \xE6\xB5\xB7\xE6\xB7\x80\xE5\x8C\xBA"

rails 3.1.2
omniauth (1.0.0)
omniauth-oauth (1.0.0.rc2)
omniauth-weibo (1.0.0.rc2)

class SessionsController < ApplicationController
  def create
    raise request.env['omniauth.auth'].to_yaml
  end

  protected

  def auth_hash
    request.env['omniauth.auth']
  end

  def destory
  end
end

求解啊,为啥没人指点一下呢 在 ubuntu 下就可以显示出中文来。 rails 代码是一致的,从 ubuntu 提交到 unfuddle 后 git pull 到盛大云 我检查了系统环境变量 LANG 和 LANGUAGE ubuntu 是 zh_CN.UTF-8 盛大云是 en_US.UTF-8 但是修改 LANG 和 LANGUAGE 后重启 WEBrick,问题依旧


provider: weibo uid: !!null info: nickname: ***** name: ***** location: 北京 海淀区

盛大云支持哪些 locales?

[root@localhost ~]# locale -m GB18030 GB2312 GBK GB_1988-80 UTF-8

都是支持的,列表太长,其他的删掉了

为什么 uid 是空呢?这样的话所有用 weibo 登录的用户就是同一个用户。难道不取 uid?

#4 楼 @rickyuan 老 gem 的一个 bug,要把 raw_info 打印出来看下,id 在哪儿,再赋值给 uid

需要 登录 后方可回复, 如果你还没有账号请 注册新账号