HarmonyOS 图片base64转码后乱码?

如题:HarmonyOS 图片base64转码后乱码?

阅读 559
1 个回答
@Concurrent
function gzipArrayBuffer(arrayBuffer: ArrayBuffer) {
  Logger.info('CameraDemoIndexPage', 'gzipArrayBuffer start');
  let gzipResult = Pako.gzip(arrayBuffer, { level: 9 })
  Logger.info('CameraDemoIndexPage', 'gzipArrayBuffer end' + gzipResult);
  Logger.info('CameraDemoIndexPage', 'base64 start')
  let result = Base64Utils.encodeToStringSync(gzipResult);
  Logger.info('CameraDemoIndexPage', 'base64 end' + result)
  return result;
}

async function startGzipArrayBufferTask(arrayBuffer: ArrayBuffer): Promise<void> {
  Logger.info(TAG, 'startGzipArrayBufferTask start');
  let task = new taskpool.Task(gzipArrayBuffer, arrayBuffer);
  task.setTransferList([arrayBuffer]);
  await taskpool.execute(task, taskpool.Priority.HIGH);
}


export class Base64Utils {
  private constructor() {
  }

  static encodeToStringSync(data: Uint8Array | ArrayBuffer): string {
    let src: Uint8Array;
    if (data instanceof Uint8Array) {
      src = data;
    } else if (data instanceof ArrayBuffer) {
      src = new Uint8Array(data);
    } else {
      throw new Error("Unsupported data type");
    }
    let base64Helper = new util.Base64Helper();
    return base64Helper.encodeToStringSync(src);
  }

验证无乱码问题

  1. 可以尝试修改下devecostudio64.exe.vmoptions 添加-Dfile.encoding=UTF-8
  2. hdc hilog \> 1.log方式获取下日志排查下base64转码解压gzip转图片是否正常
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进