zoukankan      html  css  js  c++  java
  • 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"));      

    一行代码就解决编码问题。

  • 相关阅读:
    Linux操作_常用命令操作练习
    Linux编程_Shell脚本练习题
    Linux操作_grep/egrep工具的使用
    Linux中的链接文件_软链接和硬链接
    Linux操作_磁盘管理_增加虚拟磁盘
    Linux命令_磁盘管理_查看磁盘或目录的容量
    Linux命令_用户身份切换
    使用Unity中的Box Collider组件完成游戏场景中的碰撞检测功能
    在Unity场景中更改天空盒的步骤
    Linux命令_用户和用户组管理
  • 原文地址:https://www.cnblogs.com/haoliyou/p/14188531.html
Copyright © 2011-2022 走看看