> Surrogate pairs are not defined/supported in current versions of Win32. In
> other words, a surrogate pair is treated as two undefined 16-bit Unicode
> code values. However, MutliByteToWideChar and WideCharToMultiByte
> conversions between UTF-8 and UCS-2 will preserve surrogate pairs without
> a loss of data. The Win32 conversions do not support UCS-4 32-bit chars
Microsoft believes that non-BMP and surrogate pair support is not required
for Unicode 2.x conformance based on the Conformance Requirements documented
in Section 3.1 of The Unicode Standard 2.0. Clause C4 does not require
support of surrogates, rather it prohibits the use of unpaired surrogates to
represent other characters (just as C6 says you can't assign an abstract
character to an unassigned code value). Microsoft products do not assign any
control or representation of data to unpaired surrogates, it simply treats
them as unassigned Unicode code values.
> -----Original Message-----
> From: Markus Scherer [SMTP:firstname.lastname@example.org]
> Sent: Monday, November 09, 1998 6:37 AM
> To: Unicode List
> Subject: Re: Displaying Plane 1 characters
> Sorry if this was answered before -
> Microsoft Windows Win32 APIs up to and including NT 5.0 beta 2 ignore or
> mistreat surrogate pairs and other representations (UTF-8) of non-BMP
> Conversions between UTF-8 and UCS-2 yield incorrect results for non-BMP
> characters, at least if "correct" means UTF-16 as specified in Unicode 2.0
> Non-BMP characters are destroyed in these conversions.
> I don't know if the OpenType technology supports this.
> PS: Microsoft advertises compliance with Unicode 2.12 . I expect them to
> fulfill it eventually...
> Markus Scherer IBM RTP +1 919 486 1135 Dept. Fax +1 919 254 6430
This archive was generated by hypermail 2.1.2 : Tue Jul 10 2001 - 17:20:42 EDT