Redis中文乱码问题的解决
今天測試一個小功能,用redis做了個緩存,然后啟動redis客戶端進行查詢,發現得不到想要的中文結果。網上查找相關的解決方案,卻沒有一個能完整解決問題的,最后自己一步一個腳印解決了。
1. 問題的產生
(1)將接口返回數據寫入redis,設置key為“data”
(2)找到redis安裝目錄中的redis-server.exe,雙擊啟動
(3)在redis-server.exe這個文件的這一層地址欄,輸入cmd,打開控制臺,然后輸入redis-cli并回車,接著PING一下連通性,可以看到客戶端是沒有問題的
(4)根據緩存的key,輸入查詢語句get data,查詢一下緩存數據。可以看到,能查到數據,但是沒有想要的中文出現。
2. 問題的解決
很明顯,前面出現的問題,并不是中文亂碼問題(因為連中文的痕跡都沒有看到),而是數據的進制問題。
- redis數據進制問題的解決
要解決數據進制問題,只需要在前面的(3)中,將redis-cli改為redis-cli --raw輸入進去即可,這也是很多網上的解決方案,我們可以看下這么解決的結果。
好,解決了一個數據進制問題,真正出現了我們所說的中文亂碼問題。這個問題實際上不屬于Redis的問題,而是編碼問題。這也是為什么搜Redis中文亂碼問題,總得不到解決方案的原因。
-
中文亂碼問題解決
這個問題是因為寫java文件時用的是UTF-8的編碼格式,而Windows控制臺對于中文,是GBK的編碼格式,兩者不一致導致。查看java文件編碼格式
右鍵Windows控制臺—>屬性,查看編碼格式
亂碼問題,只要保持兩者編碼格式一致,該問題便可迎刃而解。還是從前面的(3)入手,cmd打開控制臺后,先輸入chcp 65001,修改控制臺的編碼格式為UTF-8,然后再輸入redis-cli --raw,后面正常查詢,就能得到想要的中文結果了。
修改編碼格式
輸入redis-cli --raw,并做后面的查詢
總結:Redis中文亂碼問題的解決,(1)先通過chcp 65001命令修改控制臺的編碼格式(2)再通過redis-cli --raw命令解決數據進制問題,最后再做查詢就能得到正常的結果。
總結
以上是生活随笔為你收集整理的Redis中文乱码问题的解决的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这五种人工智能技术可以识别图片
- 下一篇: Antenna Magus,值得推荐的2