SQLite3 C API에 문제가 있습니다. Firefox에서 많은 것들을 저장하는 데 사용하는 places.sqlite 데이터베이스에서 정보를 읽으려고합니다. 내가 관심있어하는 것은 마지막으로 방문한 웹 사이트와 연결된 창 제목을 검색하는 것입니다. SQLite3에서 반환하지 않는 특수 문자
나는이 코드 조각을 썼다 :query = "SELECT `url`, `title` FROM `moz_places` WHERE `id`=(SELECT `place_id` FROM `moz_historyvisits` ORDER BY `id` DESC LIMIT 1)";
stmt = NULL;
if (sqlite3_prepare_v2(db, query.c_str(), strlen(query.c_str()) + 1, &stmt, NULL) != SQLITE_OK)
cerr << sqlite3_errmsg(db) << endl;
else
{
while ((ret = sqlite3_step(stmt)) == SQLITE_ROW)
cout << sqlite3_column_text(stmt, 0) << endl << sqlite3_column_text(stmt, 1) << endl;
if (ret != SQLITE_DONE)
cerr << sqlite3_errmsg(db) << endl;
}
가 잘 작동 특수 문자는 없지만, 창 제목 예를 들어 "é", "E"또는 "•"를 포함하는 경우, 내가 얻을 때 그 멋진 문자 "Ã ©", "¨"또는 "â €". 나는 약간의 조사를했고 일부 사람들은 실제로 UTF8이 아닌 코드화 된 데이터베이스를 발견했다. 그래서 SQLite Manager와 "PRAGMA encoding"요청으로 places.sqlite 데이터베이스 인코딩을 확인했습니다. 둘 다 UTF-8로 인코딩되었다고합니다. 그런 다음 UTF-8로 인코딩 된 자체 데이터베이스를 만들고 테이블에 특수 문자를 입력했으나 작동하지 않습니다. 그래서 나는 아마도 QtCreator (내가 사용하고있는)가 특수 문자를 표시 할 수 없다고 생각했다. 나는 전경 창 제목을 GetForegroundWindow()
으로 가져 와서 QtCreator 응용 프로그램 출력으로 인쇄하려고 시도했다. 그것은 일부 창 제목의 특수 문자를 성공적으로 보여주었습니다.
무엇이 여기에 있습니까?
감사합니다. 나는 내가 쓴이 기능을 사용하여 해당 문제를 해결하기 위해 관리와 같은