获取Redis位图上的操作返回奇怪的输出

时间:2015-10-01 10:42:05

标签: node.js coffeescript redis

我正在使用redis进行setbit操作,以标记哪些用户在某一天上线。

我正在进行redis get操作以获取密钥的值。

coffee> redis.get "a",(err,res)->console.log res.toString().charCodeAt(0)
true
coffee> 1

coffee> redis.get "d",(err,res)->console.log res.toString().charCodeAt(0)
true
coffee> 8

coffee> redis.get "g",(err,res)->console.log res.toString().charCodeAt(0)
true
coffee> 64

coffee> redis.get "h",(err,res)->console.log res.toString().charCodeAt(0)
true
coffee> 65533

输出

{{1}}

我的问题在于" h"我设置第0位的关键1.它应返回128但返回65533.为什么会这样?

我的最终目标是从二进制文件中获取redis的位图,以便我可以获得在特定日期哪些用户处于活动状态。

1 个答案:

答案 0 :(得分:0)

由于utf-8编码而发生此错误。当我们将第0位设置为1时,它不遵循utf-8规则。现在,当我们尝试获取它时,我们得到替换角色

  

U +FFFD�用于替换未知或替换的替换字符   不具代表性的人物

当我们对它进行charCodeAt时,我们将得到65533。

请阅读UTF-8Specials Unicode Block