Glossary
The applications GridFont and UniPut included with the Win32 SDK and Visual C++ 2 demonstrate various techniques for programming for Unicode. Under Windows NT 3.5, the shell applets and File Manager fully support Unicode. You can use the system's Notepad and Character Map applets to create files containing Unicode text by following these steps:
On an NTFS file system you can even use Unicode characters in the filename.
When saving as a Unicode Text file, Notepad always writes out a byte order mark (BOM)Unicode character U+FEFFas the first Unicode character in a file. It uses this character (and not the file extension) to help it distinguish Unicode text from other data.
Open one of your favorite applications and try to paste in the clipboard text. You will see that Windows NT 3.5 converts as much as it can to the code page used by the applicationno modifications to the application are required. When you open a file in Notepad, Notepad calls a Win32 function named IsTextUnicode. This function determines whether the file uses Unicode. If the file starts with the conventional signature for Unicodethe BOM U+FEFFit knows to treat the file as Unicode. (Notepad always adds a BOM to a Unicode file when saving it and hides it again when opening the file.) If there is no BOM, IsTextUnicode can only guess whether the file uses Unicode based on a number of rules (described in the Visual C++ 2 documentation of IsTextUnicode).
Even in Windows NT 3.5, several features are not Unicode-enabled, such as the help system, WinHlp32. More important for developers, source files for compilers and resource compilers are still based on code pages, for compatibility reasons.