[EMAIL PROTECTED] wrote: > > To install the registry keys necessary for IE to display surrogate pairs > > simply > > copy the code below to a file named "something.reg" and > double-click on it. > > Replace "Code2001" with the name of your preferred Supra-BMP font if > > necessary. > > > > > > Windows Registry Editor Version 5.00 > > > > [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows > > NT\CurrentVersion\LanguagePack] > > "SURROGATE"=dword:00000002
This setting is correct, and enabled in Windows when you install the support for complex asian scripts in the regional settings. > > [HKEY_CURRENT_USER\Software\Microsoft\Internet > > Explorer\International\Scripts\42] > > "IEFixedFontName"="Code2001" > > "IEPropFontName"="Code2001" > > > > On this note, does anyone know why this isn't enabled by default? > Presumably > there is some risk and/or performance issue if this is enabled. Microsoft > recommend (or at least used to) that you only do this registry > change if you > have a strong use-case for it. > Anyone know the details? This setting is incorrect: the script IDs go between 3 and 40, but I don't know why there's no setting for scripts 1 and 2, or script 41. There must also exist some other setting to map ranges of unicode code points to script ids. The value of the script ID may then depend on the version of some windows component which gives the script property of codepoints. I don't have this setting for script 42, but I can display surrogates. It's just a shame that Microsoft chose to use numeric script IDs here instead of using the standard script codes. This part of the user settings is normaly configured in the "Internet Explorer" properties panel, when you click on the "Fonts" button which lists supported scripts and associate them with prefered fonts. Also the supported fonts must have first been mapped to the codepoints they support. Some fonts are glyph indexed rather than indexed by code point. Some of them must be parsed and setup specially to allow converting the code points they should support into base glyph ids. I think that this is done when installing UniScribe to update the local fonts cache.

