2014-10-04 35 views
0

從C#中的PostgreSQL中獲取錯誤,但無法讀取它。 這是我在NpgsqlException文本:.NET npgsql異常不可讀符號

Additional information: �����: 28000: � pg_hba.conf ��� ������, ����������� ����������� ��� ���������� � ���������� "192.168.88.1" ��� ������������ "postgres", ���� ������ "testdb", SSL ����. 

有什麼辦法來設置不同的語言呢?或者任何其他修復程序使其可讀?
謝謝!

回答

0

這是一個已知的問題PostgreSQL的版本3協議。服務器以系統的默認文本編碼方式發送錯誤消息,直到連接握手得到足夠長的時間,以允許客戶端指定它期望從服務器得到的文本編碼。

但是,服務器永遠不會告訴客戶端它的默認文本編碼是什麼,所以客戶端不知道如何在連接過程的早期解碼消息。大多數驅動程序假設文本處於其當前的默認文本編碼,但如果這是錯誤的,則會產生垃圾。

這將在網絡協議的下一版本中修復,但這可能不會持續很長時間。同時,正如您發現的那樣,將服務器的默認語言環境更改爲使用客戶端期望的編碼(如utf-8)是最佳解決方法。最簡單的方法是在postgresql.conf中更改lc_messages

0

找到它。
的postgresql.conf文件服務器,我改變LC_MESSAGES選項'en_EN.UTF-8'
lc_messages = 'en_EN.UTF-8'