शुद्धता प्राप्त करने का सबसे अच्छा तरीका लगता है प्रोग्रामर को "स्ट्रिंग हैकिंग" करने से रोकना ... यह केवल अपने स्वयं के शब्द रैप, हायफ़नेशन, शब्द गणना, औचित्य, कर्सर आंदोलन, आदि दिनचर्या लिखने के लिए ठीक नहीं है। सभी आधुनिक यूआई फ्रेमवर्क इन दिनों यह सामान आपके लिए करेंगे।
अर्थात, आपके द्वारा आमतौर पर काम किया जाने वाला एब्सट्रैक्शन "पैराग्राफ डिस्प्ले ऑब्जेक्ट" का अधिक होता है, जैसे GTK:
http://library.gnome.org/devel/pango/stable/pango-Layout-Objects.html
इसके बजाय एक अंगूर के तने की तरह, जैसे:
http://library.gnome.org/devel/pango/stable/pango-Glyph-Storage.html
ग्लिफ़ की एक स्ट्रिंग प्राप्त करने के लिए आपको जानकारी की आवश्यकता है जो केवल "दृश्य" स्तर पर उपलब्ध है, इसलिए स्ट्रिंग्स के अधिकांश उपयोगों में यह जानकारी नहीं हो सकती है। उदाहरण के लिए, आपको फॉन्ट जानना होगा, क्योंकि फोंट में अलग-अलग लिगचर हो सकते हैं।
इस तरह के व्यावहारिक मामलों के अलावा, ग्लिफ़्स शायद वह नहीं हैं जो आप चाहते हैं।
कई संदर्भों में, आप उचित एपीआई यूनिकोड विशेषताओं का उपयोग करना चाहते हैं, उदाहरण के लिए इस एपीआई में दिखाया गया है:
http://library.gnome.org/devel/pango/stable/pango-Text-Processing.html#PangoLog.ttr
जैसा कि आप उस संरचना से देख सकते हैं (जो यूनिकोड एल्गोरिदम को दर्शाता है) ग्लिफ सीमाओं पर विभिन्न चीजें करना चरित्र सीमाओं पर उन्हें करने से ज्यादा सही नहीं है।
ये दोनों चश्मा विभिन्न प्रकार की सीमाओं को खोजने के लिए एल्गोरिदम का वर्णन करते हैं:
टेक्स्ट प्रोसेसिंग करने में एल्गोरिदम के साथ उन सीमाओं को खोजना और फिर सीमाओं के साथ काम करना शामिल है।
यदि आप सभी भाषाओं को सही ढंग से संभालना कठिन समझते हैं, तो आपको बहुत जल्दी पता चलेगा कि आपको एक पुस्तकालय की आवश्यकता है जो पूरे पैराग्राफ को देखता है और उन्हें ठीक से संभालता है। विंडोज, मैक, लिनक्स (क्यूटी और जीटीके), और जावा सभी इसके लिए सुविधाओं के साथ आते हैं, इसके अलावा उदाहरण के लिए http://site.icu-project.org/ है।
वेब ऐप लिखते समय, दुर्भाग्य से आपको बहुत ज्यादा ब्राउज़र (शायद ओएस द्वारा मदद की गई) इस सामान को करने देना है, जहां तक मुझे पता है। आप जावास्क्रिप्ट में या सर्वर की तरफ कर सकते हैं।
हो सकता है कि मैं इसका उत्तर दूंगा: प्राकृतिक भाषा पाठ पर अधिकांश स्ट्रिंग हेरफेर टूट गया है, इसलिए स्ट्रिंग वर्ग के बारे में बहुत अधिक चिंता करने की ज़रूरत नहीं है, इसके अलावा शायद उस पर कोई विधि नहीं है;;