From: Vladimir T. <pr...@hm...> - 2007-02-28 10:46:55
|
Hi Lee, > If I use Regional Options to set the operative language to Chinese, the above error condition > does not arise, but the characters in the resulting filename are messed up and I can't connect > to it. (The DB itself is okay and connection is possible if the name is changed.) Yes! You right. You have done the large work. Thank you very much. All problem here: ================= if ( ((count = WideCharToMultiByte( ptloci->lc_codepage, 0, pwcs, -1, NULL, 0, NULL, &defused )) == 0) || (defused) ) { errno = EILSEQ; return (size_t)-1; } ================ Pay attention on 'defused' -> it's: =================== lpUsedDefaultChar [in] Points to a flag that indicates whether a default character was used. The flag is set to TRUE if one or more wide characters in the source string cannot be represented in the specified code page. Otherwise, the flag is set to FALSE. This parameter may be NULL. The function is faster when both lpDefaultChar and lpUsedDefaultChar are NULL. For the code pages mentioned in dwFlags, lpUsedDefaultChar must be NULL, otherwise the function fails with ERROR_INVALID_PARAMETER. =================== However OdbcFb - this intermediate link and we should not supervise such situation. > I find it interesting that the MS Access driver doesn't exhibit this behaviour. > We also should in any case ensure performance works. On this: 1) If you need urgently decision, then execute: replace: ( file MainUnicode.cpp row ~ 184) ============= SQLCHAR * convUnicodeToString( SQLWCHAR *wcString, int length ) { . . . if ( connection ) --- bytesNeeded = connection->WcsToMbs( NULL, (const wchar_t*)wcString, length ); +++ bytesNeeded = WideCharToMultiByte( codePage, (DWORD)0, wcString, -1, NULL, (int)0, NULL, NULL ); ========== 2) The complete and correct decision will be accessible in the following assembly. -- Best regards, Vladimir Tsvigun -- View this message in context: http://www.nabble.com/Re%3A--Firebird-odbc-devel--Chinese-tf3137631.html#a9200279 Sent from the firebird-odbc-devel mailing list archive at Nabble.com. |