Re: Characters allowed in short filenames
- From: "Norman Diamond" <ndiamond@xxxxxxxxxxxxxxxx>
- Date: Tue, 15 Apr 2008 16:42:35 +0900
US Windows 98 stored the German lower-case letter ß as the Greek lower-case letter β. Code page 437 has β. Halfway OK, US Windows 98 defaults to OEM code page 437 not 850, and we are halfway towards being able to store β (but not ß).
Now, fatgen103.doc is very clear in prohibiting lower-case letters from being stored in a short name. So still, how did β get into a short name?
Does anyone know the real rules on what is allowed in a short name?
"Norman Diamond" <ndiamond@xxxxxxxxxxxxxxxx> wrote in message news:e1iF$PrnIHA.2352@xxxxxxxxxxxxxxxxxxxxxxx
My partial understanding is that short filenames are stored using the OEM
code page of the system default locale at the time that the file (or
directory) is created.
For complicated code pages this is pretty simple, for example code page 932
is both ANSI and OEM, so each ANSI codepoint maps onto the exact same OEM
codepoint.
For simple code pages this isn't so simple. For example for several Western
European languages the default ANSI code page is 1252 but the default OEM
code page isn't 1252. I thought I read that the default OEM code page for
US Windows would be 437, but experiments indicate otherwise.
As far as I can tell, code page 437 doesn't contain a ß character. So if
the current default OEM code page is 437 and I create a new file then the
short filename cannot contain a ß.
Code page 850 contains a ß character. So if the current default OEM code
page is 850 then we are halfway towards allowing a short filename to contain
a ß. We shouldn't get more than halfway because lowercase letters aren't
allowed in short filenames, but let's proceed.
I installed US Windows 98 in a virtual PC. I left all its language settings
as defaults; I didn't even install the options for limited amounts of
multilingualism. In a command prompt window I tried the MODE CON command,
but it gave an error instead of telling what code page it was using.
I did install the character map utility, and copied a ß character into the
command prompt. US Windows 98 let me create file SßT.TXT. Well this is OK
so far, since long filenames are stored in Unicode.
Oops. The DIR command said that the short filename is also SßT.TXT. So
does this mean that US Windows defaults its OEM code page to 850 instead of
437?
The next problem is that fatgen103.doc says that short filenames are always
converted to uppercase. So how could a short filename be SßT.TXT instead of
SSST.TXT? No problem for the long filename to be SßT.TXT, but how could the
short filename contain a lowercase letter?
Other letters are going to be more troublesome, and I guess
ntfsgen103.doc[*] is going to say even less than fatgen103.doc says, but if
anyone knows the real rules, could someone please say?
[* I assume there's no such document, which is the reason it's not even
going to say how to determine what characters are allowed in short names in
NTFS.]
.
- Follow-Ups:
- Re: Characters allowed in short filenames
- From: IQDave
- Re: Characters allowed in short filenames
- References:
- Characters allowed in short filenames
- From: Norman Diamond
- Characters allowed in short filenames
- Prev by Date: Re: keyboard filter Vista 32/64
- Next by Date: Re: Need help to start learning device driver development
- Previous by thread: Re: Characters allowed in short filenames
- Next by thread: Re: Characters allowed in short filenames
- Index(es):
Relevant Pages
|