2009-11-25 18 views
5

भाषा के बिना यूटीएफ -8 केस फोल्ड करें मैं असंवेदनशील यूटीएफ -8 स्ट्रिंग तुलना के मामले में विभिन्न रणनीतियों का मूल्यांकन करने की कोशिश कर रहा हूं।केस

मैंने आईसीयू के साथ प्रयोग किए गए यूनिकोड कंसोर्टियम से कुछ सामग्री पढ़ी है और विभिन्न गुणवत्ता-कार्यान्वयन विकल्पों के साथ आने की कोशिश की है।

कई अवसरों पर मैंने सरल केस मैपिंग और पूर्ण केस मैपिंग के बीच ग्रंथों को अलग किया है, और मैं यह सुनिश्चित करना चाहता था कि मैं पूरी तरह से अंतर को समझूं।

जैसा कि मैंने इसे पढ़ा है, सरल केस मैपिंग "संदर्भ मुक्त" है, यानी यह जानने की आवश्यकता नहीं है कि पेलोड कौन सी भाषा है। यह तुर्किक "आई/ı/İ/i" हार के कारण अनुमानित परिणाम देगा।

दूसरी ओर, पूर्ण केस मैपिंग, मैपिंग करने में सक्षम होने के लिए पेलोड की भाषा जानना आवश्यक है। उस अतिरिक्त जानकारी के साथ, यह उन मामलों को कवर करने के लिए विशेष उपाय कर सकता है जहां "किम" एक तुर्किक स्ट्रिंग के रूप में ऊपरी मामले में "केआईएम" बनना चाहिए, लेकिन अंग्रेजी स्ट्रिंग के रूप में "किम" को ऊपरी मामले में "किम" बनना चाहिए।

क्या मुझे यह अधिकार मिला है?

क्या "बहु-पक्षीय" कोड बिंदुओं के अन्य उदाहरण हैं जो अलग-अलग भाषाओं के लिए अलग-अलग होते हैं?

धन्यवाद!

अद्यतन: भाषा स्वतंत्र के रूप में सरल केस मैपिंग का उल्लेख करने वाले स्रोतों में से एक ICU's documentation है। मैंने व्याख्या की कि यूनिकोड सत्य के रूप में, लेकिन शायद यह कार्यान्वयन का सिर्फ एक बयान है?

उत्तर

2

नहीं, एक "पूर्ण केस मैपिंग" एक आवरण है जहां एक कोडपॉइंट को एक से अधिक नए कोडपॉइंट्स द्वारा प्रतिस्थापित करने की आवश्यकता होती है। एक साधारण मामला मैपिंग एक कोडपॉइंट प्रतिस्थापन है।

यदि आप इसे स्वयं लागू करना चाहते हैं तो यूनिकोड CaseFolding.txt फ़ाइल इस अधिकार को प्राप्त करने के लिए महत्वपूर्ण है। स्थिति फ़ील्ड कोड "टी" पर ध्यान दें, विशेष रूप से तुर्की I समस्या को संभालने के लिए।

+0

तो उन्हें दोनों को भाषा संदर्भ की आवश्यकता है, है ना? मैं एक तृतीय-पक्ष लाइब्रेरी (पीसीआरई) का उपयोग करता हूं जो CaseFolding.txt का उपयोग नहीं करता है, लेकिन केवल यूनिकोडडाटा.txt से मामला जानकारी है, और भाषा संदर्भ की आवश्यकता नहीं है (न तो स्पष्ट रूप से और न ही स्पष्ट रूप से, जहां तक ​​मैं कह सकता हूं)। मैंने सोचा कि शायद सरल मामले में एक वैध समझौता था। –

+0

बिल्कुल। जैसा कि फ़ाइल में उल्लेख किया गया है, आपको "टी" स्थिति कोड के साथ रिकॉर्ड्स को अनदेखा करना होगा। –

+0

जहां तक ​​मैं देख सकता हूं, टी स्थिति कोड केसफ़ोल्डिंग में दिखाई देता है।txt, और यूनिकोडडेटा.txt नहीं। लेकिन क्या आप वास्तव में कह रहे हैं कि _correct_ तह केवल भाषा संदर्भ के ज्ञान के साथ ही किया जा सकता है? मैं एक समझौता की तलाश में हूं जिसके संदर्भ में आवश्यकता नहीं है, और 100% सही नहीं है ... लेकिन हो सकता है कि गर्मी के लिए सड़क पर पहला कदम हो? –

2

अच्छा ... व्यंजन संयोजन "एसएस" ज्यादातर पश्चिमी भाषाओं के लिए "एसएस" के मामले में डाउन-केस होगा, लेकिन जर्मन में यह विशेष पत्र "ß" बन सकता है। यह सिर्फ "शायद" है, इस पर विचार करने के लिए usage rules शामिल हैं।

मुझे लगता है कि यह सीधे कोलेक्शन ऑर्डर को प्रभावित नहीं करता है (हालांकि किसी भी जर्मन निश्चित रूप से मुझे सही करने के लिए स्वागत है) हालांकि, शायद यह एक महत्वपूर्ण बात है।

+0

धन्यवाद! क्या मैं सरल बनाम पूर्ण मैपिंग के अंतर को सही ढंग से समझता था? –

+3

हालांकि ऊपरी भाग "ß" आपको "एसएस" देगा, लेकिन मैंने कोई ढांचा नहीं देखा है जो "ß" के परिणामस्वरूप oposite (लोअरकेस ("एसएस") करता है)। ऐसा इसलिए है क्योंकि कभी-कभी "एसएस" होना चाहिए और निर्णय लेने का एकमात्र तरीका एक पूर्ण जर्मन शब्दकोश होना है। और कभी-कभी यह भी पर्याप्त नहीं है (उदाहरण के लिए दोनों "वीस" और "वीआईएसएएस" सही शब्द हैं)। वास्तव में, यहां तक ​​कि एक इंसान भी संदर्भ के बिना "WEISS" को कम कर सकता है (इसका क्या अर्थ है)। –

+0

@ मिहाई - धन्यवाद, यह समझ में आता है। मेरे पास एक ही विचार था, कि ऊपरी भाग कम करने से कहीं अधिक आसान होगा। –

संबंधित मुद्दे