Thursday, November 6, 2014

unicode - How to show special characters in filename in Windows


How can I inspect the characters of a file name in Windows 10 ?


I have some files which contains some 'space' characters, and other who contain some 'non-breaking-space' characters. And maybe some with a mix of the two, or others who contains other "space-like" characters.


Another example would be the latin 'c' character, VS the cyrillic 'с' character.


I need to know how to inspect those characters, when I have the need.


To reproduce a simplified sample of the problem I am facing, you can use this in a PowerShell :


mkdir 'test space'
mkdir 'test space'
dir test*space

(the second one is with a non-breaking space, you can write one with Alt + 0160 on numpad)


Here is the output on PowerShell :


example of folder with special char versus 'normal' chars


To be clear, I don't just want to differentiate between 2 nearly identical names.


I would like to have a way of knowing if one of the space in any filename / folder name is a special space (and which one it is), and same for other characters like 'c' : is it a latin 'c' or a cyrillic 'c' or some other graphically identical thing ? And which one ?




I have found different info on how to search for filenames with special characters : Trying to search filenames with special characters in windows explorer (Windows 10)


or how to create one :


How to create folder name or file name with special characters like \ / : * ? " < > |


How would I go about creating a filename with invalid characters such as :?> ?


But, if I've read correctly, it doesn't seem that the answers give a way to see the special characters.


Answer



The only way to be certain what characters are hidden in a filename is to examine the volume table of contents (TOC) in a hex editor. Any given font you use to view a filename might be missing or have duplicates of a given character. For example, of the two files below that appear to be unins batt.png, one has a space and the other a non-breaking space in the name.


Space vs. NBS in filename


In a hex editor, the difference is obvious: 0x00FF2000 as opposed to 0x00F5A000.


VTOC in MiTec HexEdit


No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...