Hi Dan,
I think we need to know this here:
How do your SELECT statements look like?
What's the keyword your international clients use - to find what data?
And what's the data in the table?
What might be already a help is:
" The LIKE operator is not case sensitive and will match upper case
characters on one side against lower case characters on the other. (A
bug: SQLite only understands upper/lower case for 7-bit Latin
characters. Hence the LIKE operator is case sensitive for 8-bit iso8859
characters or UTF-8 characters. For example, the expression
*'a' LIKE 'A'* is TRUE but *'æ' LIKE 'Æ'* is FALSE.). The infix LIKE
operator is identical the user function like(/X/,/Y/)
<http://www.sqlite.org/lang_expr.html#likeFunc>. "
(pasted from the sqlite docs).
Thus case insensitive searches will fail when they contain german
umlauts and so on. That happens of course only if you don't use your own
comparison operator.
Jan-Eric
Dan Wellisch wrote:
Austin:
Are you saying that 8859-1 encoding does not work with these
international versions of MS Windows, so we would need
to ensure that we are putting UTF-8 chars in the data? This would
make sense if the OS uses UTF-8 chars. in the WHERE
clause so that it is searching against 8859-1 chars.
If the above understanding is correct, then I must make the inference
that MS Windows for English uses 8859-1 chars in the WHERE clause of
SQLlite; otherwise, the English version of MS Windows would not work
either. But, it does.
Can anyone else please chime in here and either agree or dispute what
Austin is saying? I would like some more feedback
before I start doing more investigation.
Thanks,
Dan
Austin Ziegler wrote:
On 8/4/05, Dan Wellisch <[EMAIL PROTECTED]> wrote:
We just put a SQLlite application in production. It handles the
display of ISO 8859-1characters just fine if they appear in the
search results.
However, users that are running German, French, etc. versions of
Microsoft Windows are complaining that search results are coming
back with 0 results whereas we know that these querys work when
the app. is running on the English version of MS Windows.
What do we do to fix this so this app works correctly on any
language version of OS? Furthermore, we also have a version of
this app. that runs under Mac OSX so I pose the same question
concerning that OS.
You may need to do some data massaging to make sure that it's *not*
ISO-8859-1 but rather convert UTF-8. This may require a couple of
round trips with WideCharToMultibyte and MultibyteToWideChar so that
you go from the OEM encoding (presuming that you're using char* as
your characters) to UTF-8 via Windows wide characters (which are
UCS-2, IIRC).
Alternatively, use something like Iconv to do this. The main problem
is (likely) that you're inserting data as if it were always ISO
8859-1, when it's not.
-austin