gpt4 book ai didi

android - 把每一个字符串都编码成BASE64来存入Mysql好不好?

转载 作者:可可西里 更新时间:2023-11-01 08:40:40 26 4
gpt4 key购买 nike

在我的 android 应用程序中,存储在 mysql 数据库中的每个字符串都经过编码。我这样做是因为我在字符串中有表情符号,这是我找到的唯一方法。

编码:

byte[] data = str.getBytes("UTF-8");
String base64String = Base64.encodeToString(data, Base64.DEFAULT);

解码:

byte[] data = Base64.decode(userObject.getString("mystr"), Base64.DEFAULT);
String question = new String(data, "UTF-8");

最佳答案

你是对的,你应该以更简单的方式保存文本数据。您提到的表情符号问题可以通过将数据库表的默认字符集更改为 utf8mb4 来解决。

您可以通过执行以下步骤来完成此操作:

  1. 使用此 SQL 语句更改 MySQL 数据库中表的字符集像这样:

    ALTER TABLE your_table_name charset=utf8mb4,
    修改列 your_fieldname1 VARCHAR(255) 字符集 utf8mb4,
    修改列 your_fieldname2 VARCHAR(255) 字符集 utf8mb4;

  2. 将此添加到 MySQL conf 文件并重新启动或重新加载服务器(通常位于/etc/mysql/my.cnf 或类似位置)

    字符集服务器 = utf8mb4
    collat​​ion-server = utf8mb4_unicode_ci

  3. 每次您在 Android 应用程序中访问数据库时执行下一个查询:SET NAMES utf8mb4;
  4. 将您的文本列作为 Java 中的普通字符串对象进行查询,您应该会看到正确显示的表情符号(不需要字节数组或 Base64 编码)。

关于android - 把每一个字符串都编码成BASE64来存入Mysql好不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33635161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com