在使用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個字...