Character encoding is the most basic foundation for any form of text processing; if it is handled poorly, the software is difficult to localize or internationalize. A program also requires functionality that observes language rules and cultural conventions. Windows CE provides support for numerous character codes as well as linguistic and cultural conventions through Unicode and national language support (NLS). Unicode is a universal character encoding system, while NLS carries information on date, time, calendar, number, and currency formats. NLS also provides sorting and character-type information for all the locales supported by the operating system. For more information on how to use Unicode and NLS when creating a global application, see Programming with Unicode and NLS.