चूंकि आप पायथन 2.7 का उपयोग कर रहे हैं, इसलिए आपको यह निर्दिष्ट करना होगा कि आपकी स्ट्रिंग में यूनिकोड है।
>>> db.session.add(Users(u'ä'))
आप सभी स्ट्रिंग्स को यूनिकोड के रूप में व्यवहार करने के लिए भविष्य के आयात का भी उपयोग कर सकते हैं।
from __future__ import unicode_literals
वैकल्पिक रूप से आप अपने पायथन के संस्करण को अपग्रेड कर सकते हैं। 2.7 यूनिकोड के बजाय स्ट्रिंग्स को बाइट्स के रूप में मानने वाला अंतिम संस्करण है।
संपादित करें
आपको अपना __repr__
. भी अपडेट करना होगा ताकि यह यूनिकोड को ठीक से हैंडल कर सके।
def __repr__(self):
return self.name.decode('utf-8')
या जो भी एन्कोडिंग आप उपयोग करना चाहते हैं।
सामान्य तौर पर, आपको यह सुनिश्चित करना होगा कि आप यूनिकोड से एन्कोडिंग और डिकोडिंग को संभाल लें। मैं आपसे पर्याप्त आग्रह नहीं कर सकता कि आप पायथन के नवीनतम संस्करण का उपयोग करने पर विचार करें। पायथन 3 में सबसे बड़े परिवर्तनों में से एक इस मुद्दे को संबोधित करता है।