具有“奇数”unicode代码点的图像属性“dimension”

时间:2016-08-10 00:07:30

标签: windows unicode properties

我正在寻找图像的文件属性,特别是由相机/扫描仪/ adobe /等创建的jpg文件。

有一个细节与其他细节不同。图像尺寸似乎具有未显示在显示文本中的Unicode代码点。文字显示为:‪3264 x 2448

事实证明,这个字符串的任何一端都有代码点,我无法弄清楚。它可能非常直接,但在我搜索之后我不知所措。

可在此处找到属性文档:

System.Image.Dimensions

    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图像的整个属性集合中唯一“有趣”的字符。我不知道它们是什么,或者为什么它们在场。

1 个答案:

答案 0 :(得分:1)

您的属性文本以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?