2016-08-10 53 views
0

我在圖像的文件屬性中,特別是由相機/掃描儀/ adobe /等創建的jpg文件。圖像屬性「尺寸」與「奇怪的」unicode代碼點

有一個細節與其他細節不同。圖像尺寸似乎有一個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

您的屬性文本以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編碼。

這些標記用於在雙向文本中嵌入從左到右的文本。

雷蒙德陳的博客上講述這個關於類似的問題,在Windows資源管理器中顯示的文件名:

Why is there an invisible U+202A at the start of my file name?

+0

我與這個地區的Unicode相當陌生,並有困難的時候甚至描述它。感謝您提供的信息和指針。 – billbris