[ http://tracker.firebirdsql.org/browse/CORE-3172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dimitry Sibiryakov reopened CORE-3172: -------------------------------------- Planning Status: Considered for inclusion This ticket is not a duplicate because is caused not by lack of Unicode support in engine, but unnesessary recoding of UTF-8 file names into ANSI code page in Y-valve on client side, which completely beats the idea behind isc_dpb_utf8_filename flag. > DPB flag isc_dpb_utf8_filename don't work > ----------------------------------------- > > Key: CORE-3172 > URL: http://tracker.firebirdsql.org/browse/CORE-3172 > Project: Firebird Core > Issue Type: Bug > Components: Engine > Affects Versions: 2.5.0 > Environment: Case 1 : Windows Server / Windows Client > Case 2 : Linux Server / Windows Client > Reporter: Pierre Yager > Attachments: CORE-3127.cpp.7z > > > While trying to implement support to utf8_filename DPB flag into UIB > Components we cannot pass any test. > 1) I created a database with a system charset filename in either server, then > I renamed it to unicode charset using the operating system commands (Rename > on Windows, mv on Linux). For instance I choosed this name : привет.fdb > 2) I succeded accessing the database on the Linux server using ISQL on both > Linux and Windows clients. On Windows client the database name has to be > specified in an input file, on Linux client, the filename can be specified > either as a command line argument or in an input file but neither allow to > specify the connexion string within the ISQL console prompt. > 3) On Windows clients, accessing such databases is impossible. I gave a look > at the Firebird engine core and It seems that the algorithm to resolve file > names is : > read filename; > if not isc_dpb_utf8filename then > ISC_SystemToUTF8(filename); > ISC_UTF8ToSystem(filename); > Open(filename) > So the filename is always accessed using an ANSI filename throught ANSI API > on Windows. > On Linux SystemToUTF8/UTF8ToSystem functions are void and fopen((char*)) is > UTF8 compliant. > 4) Within the Delphi (2010, Full Unicode) client using the latest UIB > Components I tried different compositions between adding the utf8_filename > flag or not, transcoding the database name to utf8 or not... > Results : > * utf8_filename flag : ON - Filename : UTF8 : I get this error : Cannot > transliterate character between character sets / Connection error / Error > Code: 652 > * utf8_filename flag : OFF - Filename : UTF8 : I get this error : I/O error > during "open" operation for file "/db/├É┬┐├æÔé¼├É┬©├É┬▓├É┬Á├æÔÇÜ.fdb" > Error while trying to open file > No such file or directory > Unsuccessful execution caused by a system error that precludes successful > execution of subsequent statements > Error Code: 24 > * utf8_filename flag : ON - Filename : Ansi : the filename is sent as > ?????.fdb because there is no russian chars in the Win1252 charset > * utf8_filename flag : OFF - Filename : Ansi : same as above. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://tracker.firebirdsql.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785231&iu=/4140 Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel