【问题标题】:ExifInterface UTF-8 supportExifInterface UTF-8 支持
【发布时间】:2026-01-01 15:00:02
【问题描述】:

我正在尝试在 Exif 标签中写入泰米尔语字符,它写入时没有任何错误/警告,

    try{
        ExifInterface exifInterface  = new ExifInterface(someFile.getPath());
        String text="ENGLISHதமிழ்";
        exifInterface.setAttribute(ExifInterface.TAG_IMAGE_DESCRIPTION,text);
        exifInterface.saveAttributes();
    }

但它把泰米尔语字符写成ENGLISH???????????????,

我也尝试过应用 Unicode 字符转换。

    try{
        ExifInterface exifInterface  = new ExifInterface(someFile.getPath());
        String text="ENGLISHதமிழ்";
        text = UnicodeUtil.unicode2tsc(text);
        exifInterface.setAttribute(ExifInterface.TAG_IMAGE_DESCRIPTION,text);
        exifInterface.saveAttributes();
    }

在元数据中写入 Unicode 字符的任何解决方案。

【问题讨论】:

  • Android 的 ExifInterface 很差,它将字符串转换为 ASCII。看来 ExifInterface 并不完全喜欢 unicode - 只是研究源代码。

标签: android image-processing utf-8 exif


【解决方案1】:

标记“ImageDescription”仅支持 ASCII 字符集。

作为替代方案,您可以使用标记“UserComment”,它支持 Unicode 字符集。

很遗憾,Android Jetpack 的 ExifInterface 库不支持使用 Unicode 字符集编写“UserComment”标签。

所以你应该自己做,或者试试这个库:

https://github.com/ddyos/UnicodeExifInterface

【讨论】: