微信登录问题

chromesetting
daiao 5 years ago
parent 6d4572a2f3
commit afbc421c29

@ -24,7 +24,16 @@ class Oauth::CreateOrFindWechatAccountService < ApplicationService
new_user = true
# 新用户
login = User.generate_login('w')
@user = User.new(login: login, nickname: result['nickname'].force_encoding('UTF-8'), type: 'User', status: User::STATUS_ACTIVE)
cd = CharDet.detect(result['nickname'])
Rails.logger.info "encoding: #{cd['encoding']} confidence: #{cd['confidence']}"
# 字符编码问题GB18030编码识别率不行
decode_content =
if cd["encoding"] == 'GB18030' && cd['confidence'] > 0.8
result['nickname'].encode('UTF-8', 'GBK', {:invalid => :replace, :undef => :replace, :replace => ' '})
else
result['nickname'].force_encoding('UTF-8')
end
@user = User.new(login: login, nickname: decode_content, type: 'User', status: User::STATUS_ACTIVE)
end
ActiveRecord::Base.transaction do

Loading…
Cancel
Save