在照片元数据中保存汉字

问题描述 投票:0回答:1

我的应用将信息保存在 TAG_IMAGE_DESCRIPTION 照片的元数据中。 当我必须保存中文字符时,结果是很多“???”。

我的保存代码:

ExifInterface exifInterface = new ExifInterface(filePath);
exifInterface.setAttribute(ExifInterface.TAG_IMAGE_DESCRIPTION, stringToSave);

供阅读

exifInterface.getAttribute(ExifInterface.TAG_IMAGE_DESCRIPTION)

我尝试将字符串转换为UTF-8,但没有任何改变:

//写:

    String chineseText = "你好"; // Example
    byte[] utf8Bytes = chineseText.getBytes(StandardCharsets.UTF_8);
    String chineseString = new String(utf8Bytes, StandardCharsets.UTF_8);
    exifInterface.setAttribute(ExifInterface.TAG_IMAGE_DESCRIPTION, chineseString);

// 阅读:

  String description = exifInterface.getAttribute(ExifInterface.TAG_IMAGE_DESCRIPTION);
  byte[] chineseBytes = description.getBytes(StandardCharsets.UTF_8);

  String readChineseString = new String(chineseBytes, StandardCharsets.UTF_8);
android string metadata exif cjk
1个回答
0
投票

解决中文字符显示为“???”的问题在元数据中,考虑这些潜在的解决方案。首先,尝试直接设置和检索字符串值,而不需要手动编码/解码,依靠 ExifInterface 的内部编码处理来保持一致性。此外,确保 ExifInterface 库与元数据的 UTF-8 编码兼容。验证存储图像的文件系统是否支持 UTF-8 编码,因为不兼容的编码可能会导致元数据损坏。尝试使用各种图像来隔离问题,并查阅 ExifInterface 文档或源代码以深入了解编码处理。通过探索这些途径,您可以有效地诊断和解决编码问题。

© www.soinside.com 2019 - 2024. All rights reserved.