我有一個使用Flask,SQLAlchemy和MySQL編寫的Web應用程序。當我通過表單提交字符串(例如request.form['Username']
)時,它們通過SQLAlchemy提交,最終以Unicode字符串的形式提交給MySQL。我的數據庫使用的是latin-1字符集,所以我真的希望在整個過程中使用latin-1。有沒有辦法強制Flask或SQLAlchemy總是使用/轉換爲拉丁-1而無需手動執行string.encode('latin-1')
?Flask/SQLAlchemy - 如何全局使用拉丁-1而不是UTF-8?
舉例說明這是如何引起問題的,當我做SELECT...WHERE Name=:name
並提供request.form['Name']
作爲綁定參數時,它會經歷u'Some Name'
,因此找不到任何匹配。
一個評論,肯定不是一個有用的答案:我堅信你正在朝着錯誤的方向前進。你應該努力使用UTF-8,而不是相反。我看不出任何理由堅持拉丁語-1,特別是因爲您正在處理用戶輸入,正如我所看到的。拉丁語-1將不夠用。我的波蘭朋友肯定會同意。 – 2012-08-03 16:30:18
我相信這是一般的真實情況,但是這是一個只由幾個人內部使用的系統,並且不需要任何特殊字符。 – 2012-08-03 20:16:37
640K應該足夠每個人。對不起,無法抗拒。系統有一個致命的發展趨勢,最近我遇到了太多的編碼問題。 – 2012-08-04 09:54:12