Unicode in Microsoft Windows (original) (raw)

About DBpedia

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