हैलो मैं एक विदेशी स्रोत है जो इस तरह u"ıöüç"
के रूप में विशेष वर्ण शामिल हैं, जबकि मैं उन्हें अंग्रेजी जैसे "ıöüç"
को सामान्य बनाने के लिए चाहते से पाठ आधारित UTF8 डेटा पुनः प्राप्त ->"iouc"
। इसे हासिल करने का सबसे अच्छा तरीका क्या होगा?अजगर और चरित्र सामान्य
उत्तर
मैं Unidecode module का उपयोग करना चाहिये:
>>> from unidecode import unidecode
>>> unidecode(u'ıöüç')
'iouc'
नोट आप इसे कैसे एक यूनिकोड स्ट्रिंग फ़ीड और यह एक बाइट स्ट्रिंग आउटपुट। उत्पादन ASCII होने की गारंटी है।
अच्छा एक +1 http://pypi.python.org/pypi/Unidecode/0.04.1 – soulseekah
import unicodedata
unicodedata.normalize()
मैं उलझन में हूं: मैंने प्रिंट unicodedata.normalize ('एनएफकेडी', यू "ıöüç") की कोशिश की है और आउटपुट फिर से है: ıöüç – Hellnar
अन्य मान्य मान 'एनएफसी', 'एनएफकेसी', 'एनएफडी', और 'NFKD'। – soulseekah
मैं निश्चित रूप से निश्चित हूं कि यह पूछताछ करने वाले की तुलना में एक अलग ऑपरेशन है। लेकिन हाँ, यह यूनिकोड सामान्यीकरण है। वह जो पूछ रहा है उसे आमतौर पर इस तरह के रूप में संदर्भित नहीं किया जाता है। – drxzcl
यह सब इस बात पर निर्भर करता है कि आप परिणाम को अनुवादित करने में कितना दूर जाना चाहते हैं। यदि आप सब कुछ ASCII (αβγ
से abg
) में कनवर्ट करना चाहते हैं तो unidecode
जाने का तरीका है।
तुम सिर्फ उच्चारण चिह्न वाले अक्षरों से लहजे निकालना चाहते हैं, तो आप सामान्य रूप NFKD (यह एक सादे पत्र a
U+0301 COMBINING ACUTE ACCENT
द्वारा पीछा करने के लिए उच्चारण पत्र á
धर्मान्तरित) का उपयोग कर अपने स्ट्रिंग सड़ते हुए और उसके बाद लहजे को त्यागकर (जो हैं की कोशिश कर सकते Unicode character classMn
- "मार्क, नॉनस्पेसिंग")।
import unicodedata
def remove_nonspacing_marks(s):
"Decompose the unicode string s and remove non-spacing marks."
return ''.join(c for c in unicodedata.normalize('NFKD', s)
if unicodedata.category(c) != 'Mn')
सबसे आसान तरीका मैंने पाया:
unicodedata.normalize('NFKD', s).encode("ascii", "ignore")
- 1. अजगर regex: एक चरित्र
- 2. बदलें & # 39 सामान्य चरित्र
- 3. अजगर .rstrip एक अतिरिक्त चरित्र
- 4. "चरित्र
- 5. वर्णमाला और चरित्र एन्कोडिंग
- 6. फ्रेट्स और यूनिक्सोडबीसी चरित्र
- 7. अजगर - subprocesses और अजगर खोल
- 8. आईफोन पर चरित्र एनीमेशन के लिए सामान्य प्रथाओं?
- 9. अजगर में एक खिड़की के अंतिम चरित्र + शाप
- 10. डीकोड और # 55357; वास्तविक चरित्र
- 11. अजगर 2 और अजगर 3 __cmp__
- 12. यूनिकोड कोडपॉइंट्स चरित्र के माध्यम से चरित्र
- 13. अजगर - रीसेट सामान्य करने के लिए stdout, पहले एक फाइल
- 14. विरासत और अजगर
- 15. अजगर asyncore और dbus
- 16. अजगर निर्भरता और संघर्ष
- 17. एक्सएमएल अजगर और minidom
- 18. कैसे सेट और अजगर
- 19. एन्क्रिप्शन: जावास्क्रिप्ट और अजगर
- 20. अजगर, override__getstate __() और __setstate __()
- 21. वैश्विक चर और अजगर
- 22. अजगर lambdas और
- 23. अजगर और यूडीपी
- 24. OpenCV और अजगर
- 25. पढ़ें और अजगर
- 26. popen और अजगर
- 27. आरेखण और अजगर
- 28. अजगर unittest और खोज
- 29. और elif बयान अजगर
- 30. अजगर -c और `while`
खोजें और हो सकता है की जगह, आप हालांकि सामान्य वर्णों के लिए विशेष की एक पूरी सरणी है करना होगा। – soulseekah