我查看了图像的文件属性,特别是由相机/扫描仪/adobe/等创建的jpg文件。
有一个细节与其他细节不同。图像尺寸似乎有一个Unicode代码点,该代码点没有出现在显示的文本中。文本显示为:3264 x 2448。
事实证明,在这个字符串的两端都有我找不到的代码点。这可能是非常直接的,但在我搜索之后,我感到迷茫。
可以在以下位置找到属性文档:
property format: {6444048F-4C8B-11D1-8B70-080036B11A03}
0xd => 13 => property id (for Systems.Image.Dimensions)
3264 x 2448 => Image dimensions as the "appear" on the screen这是我所拥有的(Python 3.5输出):
0xd => 3264 x 2448 0xd => b"?3264 x 2448?" len: 13这是转换为十六进制字节的实际字符串。
Hex Bytes: e2 80 aa 33 32 36 34 20 78 20 32 34 34 38 e2 80 ac
Character: ?? ?? ?? 3 2 6 4 x 2 4 4 8 ?? ?? ?? 谁知道"0xe280aa“和"0xe280ac”是什么,我错过了什么?
它们是jpg图像的整个属性集合中唯一“有趣”的字符。我不知道它们是什么,也不知道它们为什么会出现。
发布于 2016-08-10 08:47:11
您的属性文本以UTF-8编码。
e2 80 aa是Unicode码点U+202A LEFT-TO-RIGHT EMBEDDING的UTF 8编码。
e2 80 ac是Unicode码点U+202C POP DIRECTIONAL FORMATTING的UTF 8编码。
在双向文本中嵌入从左到右的文本时,将使用这些标记。
Raymond Chen在博客中谈到了与Windows资源管理器中显示的文件名类似的问题:
Why is there an invisible U+202A at the start of my file name?
https://stackoverflow.com/questions/38862302
复制相似问题