Android如何在exif文件中添加西里尔符号

时间:2017-04-26 09:13:35

标签: android exif

如何在exif文件中添加西里尔文符号? 我的代码alwais添加了符号“?”。 这段代码:

String userComment = "АБВГДЕЁЖЗИЙКЛСНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
exifInterface.setAttribute("UserComment", userComment );
exifInterface.saveAttributes();

String userComment = "АБВГДЕЁЖЗИЙКЛСНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
exifInterface.setAttribute("UserComment", new String(userComment.getBytes(), "UTF-8"));
exifInterface.saveAttributes();

2 个答案:

答案 0 :(得分:0)

认为ExifInterface类不支持这种西里尔文。

我试图用

从该标签中获取字节
    byte [] bytes1 = exifInterface.getAttribute("UserComment").getBytes();
    byte [] bytes2 = exifInterface.getAttribute("UserComment").getBytes("utf-8");
//  byte [] bytes3 = exifInterface.getAttribute("UserComment").getBytes("utf-16");
//  byte [] bytes3 = exifInterface.getAttribute("UserComment").getBytes("ISO-8859-1");
    byte [] bytes3 = exifInterface.getAttribute("UserComment").getBytes("windows-1252");

然后以十六进制表示法显示字节。他们都是垃圾。

33个字符有66个字节。不知道使用了哪种编码。

我想将它们与字母表字符串的字节进行比较。

还尝试编译Andoid 7,但都是一样的。

我放弃了; - )。

答案 1 :(得分:0)

Exif中的“ UserComment”标签支持ASCII或Unicode。

不幸的是,Android的ExifInterface仅使用ASCII来写入或读取标签。

因此,Android的ExifInterface不支持西里尔字母。

但是这个库可能会帮助您:

https://github.com/ddyos/UnicodeExifInterface