2012-02-12 47 views
1

我試圖將IP數據包有效載荷與Django一起存儲在PostgreSQL數據庫中。Django存儲非Unicode數據

目前,我正在講述CharField的有效載荷。

我得到這個錯誤:

django.db.utils.DatabaseError: invalid byte sequence for encoding "UTF8": 0xedbc93 
HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding". 

有什麼辦法來三立存儲這些數據?我能夠做到沒有錯誤的str(packet.payload),但是當Django試圖保存對象時,它會拋出編碼錯誤。字節串似乎是明顯的解決方案,但它看起來不像Django支持那樣。

回答

2

如果你想存儲任意的字節串,你應該這樣聲明它們。許多(大多數?)字節序列不是有效的UTF-8,所以它不是一個很好的方法來存儲它們。 CharField用於存儲文本,並且沒有文本。

對這個問題的答案可能會有所幫助:Django Blob Model Field

+0

他說什麼。 IP數據包有效負載是二進制數據塊。它既不是一個字符串,也不是Unicode。即使協議是100%的Unicode文本,數據包有效載荷也可能是Unicode無效的。 – 2012-02-12 22:51:09