簡體   English   中英

在 Postgresql ODBC 連接中使用 UTF8

[英]Using UTF8 in Postgresql ODBC connection

我正在嘗試將一些 UTF-8 字符串插入 PostgreSQL 數據庫。 我正在使用 Visual C++ 和 MFC (這點可能不重要)和項目設置“使用多字節字符集”(嘗試在舊的遺留應用程序中切換數據庫)。 因此,當我使用西里爾文“АБВГ”中的一些文本執行一些 INSERT 命令時,我希望在數據庫中看到這個文本,但我看到的是這個(在 DBeaver 中):“ÐÐ'Ð'Г”。 我通過將字符串“\xC0\xC1\xC2\xC3”從代碼頁 1251 轉換為 CP_UTF8 來插入此文本。

當我將系統設置“非 Unicode 程序的語言”從英語更改為某些西里爾語(如俄語)時,實際插入的文本不再是“Ð'Ð'Г”,而是“РђР'Р'Р“” . Postgres ODBC 驅動程序顯然使用 CP_ACP 來解釋我的多字節字符串。 事實上,如果我現在嘗試直接插入“\xC0\xC1\xC2\xC3”(不轉換為 UTF-8),我確實會在數據庫中看到“АБВГ”。 但我需要插入 UTF-8 字符串,而不是代碼頁的子集。

如何指示 Postgres ODBC 驅動程序將我的字符串解釋為 UTF-8,並忽略“非 Unicode 程序的語言”系統設置?

在 PSQL 控制台中server_encodingclient_encoding都設置為UTF8

更改您的 ODBC DSN 連接字符串以包含以下內容: ConnSettings=SET CLIENT_ENCODING TO 'UTF8';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM