How to show special characters in filename in Windows

1

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.

Pacopaco

Posted 2018-07-10T11:16:19.633

Reputation: 167

Note : I understand I can search for filenames containing a specific special characters, but this solution does not scale for and is valid only if I already know which special unicode characters I am looking for. So, that's why I am looking for a solution that allows me to visualize the details of all filename characters. – Pacopaco – 2018-07-10T11:18:54.057

The simplest way I see is to use a custom font. Search for the font where the symbols in question differs (for example, cyrillic symbols are 1 pixel down, hard space is shown as 1-pixel dot, etc...). – Akina – 2018-07-10T11:35:13.863

That could be a possible answer, and fairly easy, do you you want to turn this comment into one ? – Pacopaco – 2018-07-10T21:04:38.107

No. It's an advice, not solution. If only I had a link to such font... but I have not it. – Akina – 2018-07-11T04:55:24.450

Answers

1

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

DrMoishe Pippik

Posted 2018-07-10T11:16:19.633

Reputation: 13 291

That was the "hex editor" answer I was hoping. As a complement, do you know any way to locate the entry address for some file in the TOC, other from searching for a part of it (like "batt") ? – Pacopaco – 2018-07-11T06:35:36.197

1@Pacopaco, since the FAT32 root directory isn’t stored at a predefined location, I did just as you stated, searching on part of a filename. There are forensic tools to examine the TOC and links in detail, but I went for quick-and-dirty. Sorry about that. If someone knows of a free tool, please post it here. – DrMoishe Pippik – 2018-07-11T19:34:10.953