ExifInterface UTF-8 支持

3

我正在尝试在Exif标签中编写泰米尔语字符,它可以顺利地写入而没有任何错误或警告提示。

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

但是它将泰米尔字符写成了英语???????????????

我尝试过应用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支持不完全-只需研究源代码即可。 - Pointer Null
1个回答

2

标签“ImageDescription”只支持ASCII字符集。

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

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

因此,您应该自己完成,或尝试使用这个库:

https://github.com/ddyos/UnicodeExifInterface


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接