यहां पोस्ट करने वाले सभी लोगों को धन्यवाद। यह वास्तव में मेरे यूनिकोड ज्ञान में मदद करता है (और उम्मीद है कि अन्य लोगों ने कुछ सीखा)।
ऐसा लग रहा था कि हम सभी गलत पेड़ पर भौंक रहे हैं क्योंकि मैंने अपनी समस्या को आसान बनाने की कोशिश की और सारी जानकारी नहीं दी। ऐसा लगता है कि मैं "असली" यूनिकोड स्ट्रिंग्स का उपयोग नहीं कर रहा था, बल्कि सुंदर सूप। नेविगेट करने योग्य स्ट्रिंग जो स्वयं को यूनिकोड स्ट्रिंग्स के रूप में पुन:प्रस्तुत करता है। तो सभी प्रिंटआउट यूनिकोड की तरह लग रहे थे, लेकिन वे नहीं थे।
MySQLDB लाइब्रेरी में कहीं गहरे वे इन तारों से निपट नहीं सके।
यह काम किया:
>>> Achievement.objects.get(name = u"Mirror's Edge\u2122")
<Achievement: Mirror's Edge™>
दूसरी ओर:
>>> b = BeautifulSoup(u"<span>Mirror's Edge\u2122</span>").span.string
>>> Achievement.objects.get(name = b)
... Exceptoins ...
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2122' in position 13: ordinal not in range(128)
लेकिन यह काम करता है:
>>> Achievement.objects.get(name = unicode(b))
<Achievement: Mirror's Edge™>
तो, सभी यूनिकोड सहायता के लिए फिर से धन्यवाद, मुझे यकीन है कि यह काम आएगा। लेकिन अभी के लिए...
चेतावनी :BeautifulSoup वापस नहीं आता असली यूनिकोड स्ट्रिंग्स और उनके साथ कुछ भी सार्थक करने से पहले यूनिकोड() के साथ जबरदस्ती की जानी चाहिए।