Unicode in Microsoft Windows (original) (raw)
Microsoft was one of the first companies to implement Unicode in their products. Windows NT was the first operating system that used "wide characters" in system calls. Using the (now obsolete) UCS-2 encoding scheme at first, it was upgraded to the variable-width encoding UTF-16 starting with Windows 2000, allowing a representation of additional planes with surrogate pairs. However Microsoft did not support UTF-8 in its API until May 2019, though it now appears to be encouraging its use.
Property | Value |
---|---|
dbo:abstract | Microsoft was one of the first companies to implement Unicode in their products. Windows NT was the first operating system that used "wide characters" in system calls. Using the (now obsolete) UCS-2 encoding scheme at first, it was upgraded to the variable-width encoding UTF-16 starting with Windows 2000, allowing a representation of additional planes with surrogate pairs. However Microsoft did not support UTF-8 in its API until May 2019, though it now appears to be encouraging its use. (en) Одной из первых компаний, последовательно внедрявших Юникод, была Майкрософт — Windows NT была первой операционной системой, использовавшей Юникод в системных вызовах. Было выбрано двухбайтное представление символов (UCS-2); начиная с Windows 2000, возможно представление символов дополнительных плоскостей с помощью суррогатных пар UTF-16. Переход на Unicode был поэтапным: * Windows 3.x — только кодовые страницы ANSI * Windows 9x — кодовые страницы ANSI и ограниченно Юникод * Windows NT 3.1 — первая операционная система, основанная на Юникоде * Windows NT 4.0 — отображение символов Юникода * Windows NT 5.0 (Windows 2000) — отображение и ввод символов Юникода Операционные системы Windows XP и Windows Server 2003, как и предшествующие им Windows NT 4 и Windows 2000, поставляются с системными библиотеками, включающими функции обоих видов: юникодовые и предназначенные для работы со строками в текущей кодовой странице системы, условно называемой ANSI-страницей. При этом для вызова юникодовых функций используется суффикс W (от слова wide «широкий», например, lstrlenW), а для вызова ANSI-функций используется буква A (например, lstrlenA). В результате на ОС семейства Windows NT запускаются и программы, способные использовать Юникод, и более старые программы, неспособные одновременно работать с символами разных языков. Большинство ANSI-функций реализовано как оболочки над соответствующими юникодовыми функциями. Использовать при этом можно только поддерживаемые этими программами символы. В Windows CE, начиная с самых первых версий, за исключением малого числа случаев, использовался только UTF-16. В 2001 году корпорация Майкрософт выпустила специальное дополнение к своим старым операционным системам Windows 95, Windows 98 и Windows Me. Дополнение называется слоем (уровнем) Юникода (англ. Microsoft Layer for Unicode, MSLU) и обеспечивает поддержку Юникода на указанных старых платформах. Это дополнение включает в себя динамическую библиотеку unicows.dll (всего 240 Кбайт), содержащую юникодовые версии (те, что с буквой W на конце) всех основных функций Windows API. В результате на старых операционных системах Windows стало возможно запускать как старые, так и новые программы, рассчитанные на использование Юникода. В Windows NT включена функция IsTextUnicode, которая пытается статистическими методами определить, содержит ли переданная ей строка текст в Юникоде. Для очень коротких текстов эта функция часто даёт неверный результат. Например, эту функцию использует стандартный текстовый редактор Windows NT — Блокнот при открытии текстовых файлов, что породило легенды о существовании в нём «пасхальных яиц» следующего рода: * Откройте программу Блокнот и наберите следующий текст:Билл Гейтс самый умный * Сохраните текст и закройте программу. * Откройте сохранённый текстовый документ, скопируйте текст в другой текстовый редактор (например, Microsoft Word), и вы увидите его содержимое:쌠 Более эффектными являются фразы, целиком состоящие из латинских букв (например, «this app can break»), потому что в этом случае при неверном распознавании кодировки будет отображаться целая строка .. (ru) |
dbo:wikiPageExternalLink | http://msdn.microsoft.com/en-us/library/dd374081(v=vs.85).aspx |
dbo:wikiPageID | 32242091 (xsd:integer) |
dbo:wikiPageLength | 12329 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1119599190 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:Mojibake dbr:Windows_API dbr:Boost_(C++_libraries) dbc:Unicode dbr:Character_encoding dbr:UTF-16 dbr:UTF-8 dbr:Unicode dbc:Windows_technology dbr:MSDN dbr:Windows_9x dbr:8.3_filename dbr:C_(programming_language) dbr:UCS-2 dbr:Windows_11 dbr:Windows_2000 dbr:Windows_CE dbr:Windows_NT dbr:Windows_XP dbr:American_National_Standards_Institute dbr:Win32_console dbr:Wrapper_function dbr:Bush_hid_the_facts dbr:Microsoft dbr:System_call dbr:Variable-width_encoding dbr:Windows_code_page dbr:SQL_Server_2019 dbr:Wide_character dbr:MultiByteToWideChar |
dbp:date | March 2021 (en) |
dbp:reason | this cites a 2017 mailing list post, has it been released? (en) |
dbp:wikiPageUsesTemplate | dbt:Citation_needed dbt:Cite_web dbt:Cn dbt:Code dbt:Efn dbt:Expand_section dbt:Main_article dbt:More_citations_needed dbt:Needs_update dbt:Notelist dbt:Reflist |
dct:subject | dbc:Unicode dbc:Windows_technology |
rdf:type | yago:WikicatMicrosoftWindows yago:Artifact100021939 yago:Framework103391770 yago:Object100002684 yago:PhysicalEntity100001930 yago:Window104587648 yago:YagoGeoEntity yago:YagoPermanentlyLocatedEntity yago:Structure104341686 yago:SupportingStructure104361095 yago:Whole100003553 |
rdfs:comment | Microsoft was one of the first companies to implement Unicode in their products. Windows NT was the first operating system that used "wide characters" in system calls. Using the (now obsolete) UCS-2 encoding scheme at first, it was upgraded to the variable-width encoding UTF-16 starting with Windows 2000, allowing a representation of additional planes with surrogate pairs. However Microsoft did not support UTF-8 in its API until May 2019, though it now appears to be encouraging its use. (en) Одной из первых компаний, последовательно внедрявших Юникод, была Майкрософт — Windows NT была первой операционной системой, использовавшей Юникод в системных вызовах. Было выбрано двухбайтное представление символов (UCS-2); начиная с Windows 2000, возможно представление символов дополнительных плоскостей с помощью суррогатных пар UTF-16. Переход на Unicode был поэтапным: В Windows CE, начиная с самых первых версий, за исключением малого числа случаев, использовался только UTF-16. (ru) |
rdfs:label | Unicode in Microsoft Windows (en) Юникод в Windows (ru) |
owl:sameAs | freebase:Unicode in Microsoft Windows wikidata:Unicode in Microsoft Windows dbpedia-ru:Unicode in Microsoft Windows https://global.dbpedia.org/id/4Chf3 |
prov:wasDerivedFrom | wikipedia-en:Unicode_in_Microsoft_Windows?oldid=1119599190&ns=0 |
foaf:isPrimaryTopicOf | wikipedia-en:Unicode_in_Microsoft_Windows |
is dbo:wikiPageRedirects of | dbr:Unicode_in_Windows dbr:IsTextUnicode |
is dbo:wikiPageWikiLink of | dbr:C_string_handling dbr:UTF-16 dbr:UTF-8 dbr:Mingw-w64 dbr:Windows_code_page dbr:Unicode_in_Windows dbr:IsTextUnicode |
is foaf:primaryTopic of | wikipedia-en:Unicode_in_Microsoft_Windows |