Jump to content

Illegal Characters in File Names?


FantasyAcquiesce

Recommended Posts

Hello MSFN,

I was wondering if there is a workaround to copying files from newer Windows/MacOS/Linux machines that use characters unavailable on Windows 9x. For example, a file with specific symbols (like hearts?) and fonts unavailable on Windows 9x cannot be copied to the machine. Is there a workaround to fix this besides having to rename the file on a modern PC? I like to use my old 9x PC to backup a few files. Same issue occurs when using a virtual PC and attempting to copy a file with an "illegal" name to the Windows 95/98/ME machine.

Thank you!

Edited by FantasyAcquiesce
Link to comment
Share on other sites


Put those files into a container first.

Also you may want to see if the limitation is with the destination file system or not. Explorer can be a limiting factor as it does not support all 255 characters in ASCII, but command.com does. Other programs may also not care about symbols in filenames. To see what kind of symbols you can use, on a modern OS you can use Character Map. Say select Arial and then change the character set to DOS: United States. It will show all 255 characters you can use to create paths (or possibly) filenames with on Win9x, including "No-Break Space."

Link to comment
Share on other sites

The main problem is not the font nor the file system itself, but the fact that Win9x does not support Unicode.

This means that any character that goes out of your code page cannot be handled. in your case you are probably limited to the Windows-1252 encoding that includes all ASCII plus many accentuated characters used in western Europe (255 in total, but you have to exclude control characters). Some of them are specifically not supported by the explorer (? : / \ " < > tabs, carriage-return etc.), but those are the same than for modern Windows versions.

So my answer is that you can not really. You have to remove the special characters before copying them to 9x (you can use bulk rename utility if you have to rename many files).

For education purpose only (From what I remember reading in the docs):

Win 3x and 9x/ME -> No Unicode support for file names and for most controls in general, even though long files name are encoded in UTF-16 in FAT16/32 file systems.

Windows NT3x and 4 -> Full UCS-2 support, which is a subset of Unicode, basically it only contains languages that are still spoken and has the advantage to be a fixed length encoding, a character is always 16bits long.

Windows 2000+ -> Full Unicode support using UTF-16 encoding everywhere. Has the drawback of having a variable length encoding like UTF-8 but with the advantage to be fully backward compatible with UCS-2. so only very special characters like emoji or deal languages will use more than 16bits of space.

In general if the character is supported by Windows but the glyph is missing in the font you are using, the explorer will just show a square instead of the said character.

For example the 'cross' carracter '†' (ALT+0134) is part of Windows-1252 but (if I remember well) has no glyph on the font that Win9x uses by default, so a black square is drawn instead.

In the end the most tricky situation is if you wrote files from a new OS to a drive (eg: FAT32 flash-drive) and want to read from Win9x a file containing Unicode only characters. In this case as proposed by Tripredacus, the best solution is to rename with command prompt using DOS short name that is guarantied to only contain ANSI characters, because this is the way they are encoded in the file system.

Hope it replies your question

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...