0

我有一张包含 ITPC 数据的图像,并使用以下命令将 IPTC 提取为文本数据:

convert image.jpg IPTCTEXT:iptc.txt

问题是这似乎使用实体来表示“特殊字符”:

2#120#Caption="Beschreibung für den Import aus IPTC"

其实这里应该是“für”。但是没有得到正确的实体 ü 对于“ü”字符,我得到两个实体(可能 UTF-8 编码字符的两个字节都转换为实体分隔)。这两个实体我无法正确解析。

有没有办法获得正确的实体或禁用完全返回 UTF-8 字符的实体?

编辑:我尝试在 Java 中使用 StringEscapeUtils.unescapeXml 解析实体,但我得到两个字符(“ü”)而不是“ü”,因为两个实体都是非转义分隔的。

Edit2:此处的示例图片:http: //fs1.directupload.net/images/150615/5eiv6wwf.jpg

4

2 回答 2

1

最可靠的元数据包是恕我直言 exiv2(http://exiv2.org/;在所有 Linux 发行版、Windows 中都可用,并且不确定 Mac 二进制文件)。

有关结果,请参见http://paste.fedoraproject.org/232538/34459066/。恐怕 ImageMagick 用于元数据目的并不是那么好。

于 2015-06-16T12:53:17.780 回答
0

我不确定你为什么看到与我不同的东西。我在 OS X 下的 Mac 上运行 ImageMagick 6.9.1-4。

如果我这样做:

identify -format "%[IPTC:2:120]" http://fs1.directupload.net/images/150615/5eiv6wwf.jpg

我明白了:

Beschreibung für den Import aus EXIF

在此处输入图像描述

如果我用十六进制转储它,我会得到这个:

在此处输入图像描述

我认为这可能与您的终端的语言环境设置有关-尽管我不知道为什么当您重定向到文件时仍然会发生这种情况。你有没有尝试过这样的事情:

LC_CTYPE=C identify -format "%[IPTC:2:120]" http://fs1.directupload.net/images/150615/5eiv6wwf.jpg | od -xc
于 2015-06-15T15:49:54.390 回答