2011-04-13 39 views
0

我有一個9.0 postgres服務器實例和一個使用UTF8字符編碼和German_Germany.1252排序規則的數據庫。我試圖讓我的libpq錯誤消息作爲US-ASCII字符串在客戶端上。爲此我做:
PQsetClientEncoding(connection,「SQL_ASCII」);
它不返回錯誤。但是,從PQerrorMessage()返回的字符串仍然是UTF8。
從PQerrorMessage 總是保證是UTF8的返回值?無論客戶端/服務器設置如何?Postgres API函數返回值的字符編碼?

回答

1

SQL_ASCII作爲客戶端編碼手段,傳遞字節通過原樣,這正是你不想要的。實際上沒有任何客戶端編碼對應於ASCII。如果您的信息是德語,那麼您可能需要設置如LATIN1LATIN9。否則,請將語言更改爲英語,並且消息將以ASCII形式發送。