On Feb 12, 2016, at 1:49 PM, Clemens Ladisch <clemens at ladisch.de> wrote: > > Olivier Mascia wrote: >> Are there Windows platforms, supported by SQLite source code of course, >> where the 'W' version of the APIs are not available? > > Once upon a time, SQLite supported Windows 95/98/Me.
The DOS-based versions of Windows still have the ?W? functions for binary compatibility with the NT-based versions, but for the most part they treat their arguments according to the 8-bit code page or MBCS rules, which means you generally get garbage output when you feed in UCS-2. There are a few exceptions: https://support.microsoft.com/en-us/kb/210341 Note that Windows didn?t move from UCS-2 to UTF-16 until Windows 2000, which is effectively after the development time of the DOS-based versions of Windows. (There?s a tiny overlap there with Windows ME, but that?s last-gasp stuff.) I assume if you pass strings using characters beyond the BMP to the ?16? APIs in SQLite, they would do the wrong thing on Windows NT 3.x and 4.x systems, too. I doubt there would be much crying if SQLite dropped the ?A? support. I suspect the only reason SQLite still has it is that it?s more work to remove it than to leave it alone.