[sqlite] Unicode command line bug in Windows version of sqlite3 with patch

2010-03-16 Thread Kunc Filip
Hello SQLite Team,

 

We currently use sqlite 3.6.23. We have a big problem with characters with
accents or other special characters in path to database file, for example in
Czech Windows XP the Application Data folder is translated to Data
aplikací so if the accented 'í' is in path the sqlite3.exe writes that it
is unable to open file in this path.

 

To workaround this problem we tried to find the source of this error. It
lies in MultiByteToWideChar and WideCharToMultiByte with CP_UTF8 as encoding
argument. If is instead used CP_ACP as ANSI encoding then there is no
problem.

 

In attachment you will find diff patch which works for us. But because
SQLite3 source code is really big we can't be sure that this fix is correct
and doesn't introduce any side effects.

 

Thanks for your hard work and help

Filip Kunc

 

 

___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] Unicode command line bug in Windows version of sqlite3 with patch

2010-03-16 Thread Pavel Ivanov
sqlite3_open[_v2] accepts all filenames in UTF-8 (although it doesn't
check for valid UTF-8 string). So CP_UTF8 cannot be changed anywhere.

OTOH maybe command line utility should have some logic of re-encoding
of command line parameter from terminal encoding to UTF-8. But I'm not
sure about that. Could you try to run sqlite3 from a batch file that
is written in UTF-8 encoding (properly encode your path). I believe it
will work this way...


Pavel

2010/3/16 Kunc Filip k...@medictech.com:
 Hello SQLite Team,



 We currently use sqlite 3.6.23. We have a big problem with characters with
 accents or other special characters in path to database file, for example in
 Czech Windows XP the Application Data folder is translated to Data
 aplikací so if the accented 'í' is in path the sqlite3.exe writes that it
 is unable to open file in this path.



 To workaround this problem we tried to find the source of this error. It
 lies in MultiByteToWideChar and WideCharToMultiByte with CP_UTF8 as encoding
 argument. If is instead used CP_ACP as ANSI encoding then there is no
 problem.



 In attachment you will find diff patch which works for us. But because
 SQLite3 source code is really big we can't be sure that this fix is correct
 and doesn't introduce any side effects.



 Thanks for your hard work and help

 Filip Kunc






 ___
 sqlite-users mailing list
 sqlite-users@sqlite.org
 http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] Unicode command line bug in Windows version of sqlite3 with patch

2010-03-16 Thread Jean-Christophe Deschamps

We currently use sqlite 3.6.23. We have a big problem with characters with
accents or other special characters in path to database file, for 
example in
Czech Windows XP the Application Data folder is translated to Data
aplikací so if the accented 'í' is in path the sqlite3.exe writes that it
is unable to open file in this path.

A much better solution is to use a MSYS terminal (installed by MinGW), 
so you have UTF-8 command-line and data entry/display without 
conversion.  No need to patch anything.

The culprit here isn't the command-line utility, but the WinDOS usage 
of old charset.

In attachment you will find diff patch which works for us. But because
SQLite3 source code is really big we can't be sure that this fix is 
correct
and doesn't introduce any side effects.

If you change input encoding and use your code page, then it's likely 
you'll going to do the same with data, which is plain wrong: SQLite 
needs UTF-8 (or UTF-16) data, not ANSI.




___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] Unicode command line bug in Windows version of sqlite3 with patch

2010-03-16 Thread Roger Binns
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Jean-Christophe Deschamps wrote:
 A much better solution is to use a MSYS terminal (installed by MinGW), 
 so you have UTF-8 command-line and data entry/display without 
 conversion.  No need to patch anything.

No need for msys.  You can make a regular command prompt use UTF8 by
switching to code page 65001.  Either of these commands will do that.

  chcp 65001
  mode con cp select=65001

You can use chcp or mode con to see the current code page.

Roger
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkuf/5UACgkQmOOfHg372QS+xACg0VZPfwEz4y2OAzs4OpHon+EG
crIAoMsd8wVrRWhhPBouPVnI1m0M4lL/
=/eXW
-END PGP SIGNATURE-
___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users