redis 空格問題

2021-12-29 21:10:10 字數 1015 閱讀 5761

在使用hset的時候,當鍵或值有空格的時候總是寫不成功,如下封裝的hmset方法:

int credisintf::hash_mset(const string& key, const vector& fields, const vector& values)

string strformat = "hmset " + key + " ";

for (size_t i = 0; i < fields.size(); ++i)

strformat += fields[i] + " ";

strformat += values[i] + " ";

} if (!_check_connect())

mcgwritelog("credisintf::hash_mset %s",strformat.c_str());

redisappendcommand(m_predis,strformat.c_str());

redisreply* reply = null;

redisgetreply(m_predis,(void**)&reply);

if (reply == null)

if (reply->type == redis_reply_status && strcmp(reply->str,"ok") == 0)

else

} 問題所在:strformat += fields[i] + " ";

strformat += values[i] + " ";redis提供的庫,就是用空格來分隔引數的,如果乙個字串中本身帶有乙個空格,最後組裝完成後這就等於兩個引數,所以就會出現鍵和值數量不對應的關係,即使巧合對應了,但是肯定也不是我們期待的結果,

解決辦法:

1. 替換,在呼叫hset方法前,將鍵或值中的空格替換成指定字元(如:" " --> "0x00" ),在讀取的時候("0x00"-->" ")。

2.編碼,其實和方法1類似 ( valuse =base64encode(args,valuse))

其實都是想辦法去掉空格即可

html 空格問題

一 使用全形空格 全形空格被解釋為漢字,所以不會被被解釋為html分隔符,可以按照實際的空格數顯示。二 使用空格的替代符號 替代符號就是在需要顯示空格的地方加入替代符號,這些符號會被瀏覽器解釋為空格顯示。空格的替代符號有以下幾種 名稱編號 描述 不斷行的空白 1個字元寬度 半個空白 1個字元寬度 乙...

html 空格問題

一 使用全形空格 全形空格被解釋為漢字,所以不會被被解釋為html分隔符,可以按照實際的空格數顯示。二 使用空格的替代符號 替代符號就是在需要顯示空格的地方加入替代符號,這些符號會被瀏覽器解釋為空格顯示。空格的替代符號有以下幾種 名稱 編號 描述 不斷行的空白 1個字元寬度 半個空白 1個字元寬度 ...

牛腩 空格問題

在html中手動輸入多個空格,在頁面解析的時候都會解析成不顯示空格或乙個空白顯示,但有時候的需求要求顯示多個空格來對齊文字,下面是一些解決辦法 1 使用轉義字元,如 等,代替手動輸入的空格 轉義符表示內容 不斷行的空白 1個字元寬度 半個空白 1個字元寬度 乙個空白 2個字元寬度 窄空白 小於1個字...