1

I'm looking for a code page that could be used in cmd.exe in all Windows versions - mainly XP to 10 -, regardless of the system locales. The priority being the newer versions and most commonly used locales.

Basically, I'd like for my console application to display the 256 characters - determined by the code page - in as many Windows environments as possible. Doesn't matter (too much) what the 255 characters are, as long as they are unique.

I had initially thought that CP_UTF8 would be one that every system had in it, because of the popularity it has gained in the last years. But I did recently hear of a case where a user didn't have it, so I really don't want to rely on just my assumptions alone.

My only other guess would be 437, but I haven't been able to find any confirmation on whether it's included in all Windows versions.

If a code page doesn't exist that covers all Windows systems, I'd like to at least find one that was supported by as many systems as possible (with sources, preferably).

If multiple such code pages exist, a list would be great.

1

All 8-bit-ASCII-based code pages consist of 256 characters, by definition. That includes OEM code pages (ISO 8859 ones have the first 32 characters represent control codes and are all depicted with a dot when printing). Notably, cp437 is the native encoding built into the BIOS of every PC in existence and, consequently, supported in all versions of MS-DOS and Windows, regardless of language. 1252 is its ISO 8859 counterpart.

| improve this answer | |
  • I do believe that CP437 is included in basically all systems at BIOS level, but I'd assume that Windows Command Prompt doesn't use the code page from directly the graphics card's core (because you can use other code pages, too, which aren't there). So is there any reason to believe that CP437 would be useable in every Windows system at the OS-level in a command prompt? Could you find a source claiming this? – user7003859 Mar 8 '17 at 23:21
  • @user6003859 surely, Windows doesn't use the BIOS font. I only meant that since MS-DOS was initially based on it, Windows retained the encoding as the "base" one, e.g. the one of the font in bootvid.dll that is used for BSOD. – ivan_pozdeev Mar 8 '17 at 23:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.