Just a quick note -- TCHAR is not always UTF-16, and sqlite3_bind_text16 takes a void* so it will happily take whatever you give it. You should be using wchar_t directly instead of TCHAR, so an error can be caught when you use GetWindowText.
-- Cory Nelson http://int64.org On Thu, Dec 16, 2010 at 8:08 AM, Afriza N. Arief <afriza...@gmail.com> wrote: > Try this: > > HWND hWnd = /* from somewhere */; > int nLen = GetWindowTextLength(hWnd) + 1; > TCHAR* lpszText = (TCHAR*)malloc(nLen*sizeof(TCHAR)); // std::wstring str; > str.resize(nLen); > nLen = GetWindowText(hWnd,lpszText,nLen); // > str.resize(nLen=GetWindowText(hWnd,&str[0],nLen)); > > sqlite3_bind_text16(stmt,1,lpszText,nLen*sizeof(TCHAR),SQLITE_TRANSIENT); > // (.., str.data(),nLen*sizeof(std::wstring::value_type),SQLITE_TRANSIENT); > free(lpszText); // not needed for std::wstring > > When you first time create the database, use sqlite3_open() to store the > data as utf8. I believe bind_text16() will convert from utf16 to utf8 for > you. > > See: > - GetWindowTextLength() > http://msdn.microsoft.com/en-us/library/ms633521.aspx > - GetWindowText() http://msdn.microsoft.com/en-us/library/ms633520.aspx > - sqlite3_bind_text16() http://www.sqlite.org/c3ref/bind_blob.html > > > On Thu, Dec 16, 2010 at 10:51 PM, Pavel Ivanov <paiva...@gmail.com> wrote: > >> > std::string strText = GetWindowsTitle(...); >> > the GetWindowsTitle occupied sometime with the umlaut. >> > so how will you do, if you want save std::string into sqlite with keeped >> > umlaut? >> >> >> Pavel >> >> On Thu, Dec 16, 2010 at 8:40 AM, Ming Lu <ming...@xenovation.com> wrote: >> > i tried again with the firefox plugin works very well with the umlaut.(i >> > update the feld with a "ä", it can been shown correctly). >> > >> > in my code: >> > >> > std::string strText = GetWindowsTitle(...); >> > >> > the GetWindowsTitle occupied sometime with the umlaut. >> > >> > so how will you do, if you want save std::string into sqlite with keeped >> > umlaut? >> > >> > >> > On 16.12.2010 14:26, Martin Engelschalk wrote: >> >> Hello Ming, >> >> >> >> sqlite does nothing to transform data between codepages, and it assumes >> >> that data you insert is passed in UTF8. >> >> However, sqlite will acept any data and store it. >> >> >> >> If the firefox plugin does not show you data correctly, then you >> >> problably did not pass correct UTF8 to sqlite. Can you check this? >> >> >> >> I just checked the firefox (0.6.5) plugin with my databases, it works >> >> correctly for me. >> >> >> _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users