Redis 存儲中文方式


有時,特殊的一些業務需求,我們會為了方便的情況下,使用中文作為key,正常情況下 ,取數據不會有問題,但是難免會有的時候由於編碼格式不一樣,而導致取不到數據,這個時候,就需要我們對存儲的key做一個特殊的處理。這里我選擇使用base64編碼處理這種情況。

  <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
</dependency>

首先我們先引入jar包,然后我們先來看看測試代碼

import java.io.UnsupportedEncodingException;
import java.util.Base64;
import java.util.UUID;

public class BASE64Test {
    public static void main(String args[]) {
        try {

            // 使用基本編碼
            String base64encodedString = Base64.getEncoder().encodeToString("生活垃圾".getBytes("utf-8"));
            System.out.println("Base64 編碼字符串 (基本) :" + base64encodedString);

            // 解碼
            byte[] base64decodedBytes = Base64.getDecoder().decode(base64encodedString);

            System.out.println("原始字符串: " + new String(base64decodedBytes, "utf-8"));
            base64encodedString = Base64.getUrlEncoder().encodeToString("生活垃圾".getBytes("utf-8"));
            System.out.println("Base64 編碼字符串 (URL) :" + base64encodedString);

            StringBuilder stringBuilder = new StringBuilder();

            for (int i = 0; i < 10; ++i) {
                stringBuilder.append(UUID.randomUUID().toString());
            }

            byte[] mimeBytes = stringBuilder.toString().getBytes("utf-8");
            String mimeEncodedString = Base64.getMimeEncoder().encodeToString(mimeBytes);
            System.out.println("Base64 編碼字符串 (MIME) :" + mimeEncodedString);

        } catch (UnsupportedEncodingException e) {
            System.out.println("Error :" + e.getMessage());
        }
    }

}

 

 測試輸出結果,沒毛病。放入實際業務中使用。當然,有的時候我們在解決問題的時候,還是要先看一下問題到底是怎么導致的,否則努力錯了方向,終將頹然。

// 使用基本編碼
String base64encodedPath = Base64.getEncoder().encodeToString(path.getBytes("utf-8"));      

一行代碼就解決編碼問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM