Hello everybody
As one of the contributors of parts of the SciTE code to enableUnicode and
UTF-8 find / replace on NT-based systems, I felt obligedto look into that issue
more seriously...
I was aware that SciTE's "%1 not found" message box might display textin the
wrong encoding, so I suggested to replace it with a generic"the specified text
was not found" message (without again displayingthe text snippet being searched
for).
Neil refused that, I don't remember why exactly (he told me there weremany
other issues with Unicode and UTF-8 compatibility, i.e. the regexengine cannot
handle multibyte characters, and case-insensitivesearches are not possible,
either – probably Neil preferred a morecomplete solution instead of just simple
patches that even reducefunctionality, which I can understand...?).
Strings passed to SciTEBase::EncodeString(), and on to the
descendantSciTEWin::EncodeString(), are in UTF-8 on Windows NT, and in
systemdefault ANSI encoding on Windows 9x (if I remember rightly...). Themost
simple solution would be to keep a copy of the string passed toEncodeString()
and always convert it to ANSI (so have multibytecharacters replaced by ???'s)
before displaying the message, i.e.before calling LocaliseMessage(). A more
extensive approach would beto modify the (platform-dependent) functions to
format and display themessage, i.e. using MessageBoxW() on NT, to ensure proper
display ofextended characters.
At the moment my laptop is covered with cobwebs, as I have retiredfrom my
computer projects for several months, being busy otherwise, soI'm very sorry I
can't promise I will work on this...
--Florian
_______________________________________________
Scintilla-interest mailing list
[email protected]
http://mailman.lyra.org/mailman/listinfo/scintilla-interest