1
爲什麼沒有sqlite3_mprintf16()函數?我需要'%q'功能,但對於UTF-16字符串。如何使用帶有UTF-16字符串的sqlite3_mprintf()?
爲什麼沒有sqlite3_mprintf16()函數?我需要'%q'功能,但對於UTF-16字符串。如何使用帶有UTF-16字符串的sqlite3_mprintf()?
爲什麼沒有sqlite3_mprintf16()函數?
因爲SQLite尚未被UTF-16感染。它幾乎在界面的任何地方都使用UTF-8,所以用UTF-16字符串編碼查詢格式是沒有意義的。
我需要'%q'功能,但對於UTF-16字符串。
這是一個不同的故事。你需要的是類似'%q16'的東西,實際上它不存在。
說的是,你根本不應該使用sqlite3_mprintf
。改用準備好的語句並綁定函數。他們確實允許您使用sqlite3_bind_text16
綁定UTF-16字符串。更好,stop using UTF-16 for your strings。
我知道UTF-16的問題。我的任務是將舊版本的某個Windows應用程序的插件(使用char *作爲字符串)移植到新的應用程序(它在任何地方都使用wchar_t *),以便將所有字符串從UTF-16轉換爲UTF-8,反之亦然。但是你是對的 - 我必須使用準備好的陳述。 – tilex
SQLite *是*「受UTF-16感染」。它有'sqlite_open16','sqlite3_prepare16'等。 – dan04