2011-01-06 12 views
7

मुझे यह question मिला जो मुझे यह जांचने की क्षमता देता है कि स्ट्रिंग में चीनी वर्ण है या नहीं। मुझे यकीन नहीं है कि यूनिकोड रेंज सही हैं, लेकिन वे जापानी और कोरियाई के लिए झूठी वापसी करते हैं और चीनी के लिए सच हैं।पता लगाएं कि क्या चरित्र सरलीकृत है या पारंपरिक चीनी वर्ण

यह क्या नहीं करता है यह बताता है कि चरित्र पारंपरिक या सरलीकृत चीनी है या नहीं। आप इसे खोजने के बारे में कैसे जाएंगे?


अद्यतन

प्रश्न: मुझे एक यूनिकोड वर्ण अगर यह एक चीनी, कोरियाई या जापानी चरित्र है की 32 बिट मूल्य से कैसे पहचान सकते हैं?

http://unicode.org/faq/han_cjk.html

उनका तर्क है कि भले ही उनके आकार के पात्रों में एक ही अर्थ है और इसलिए एक ही कोड के प्रतिनिधित्व वाले किया जाना चाहिए। ठीक है, यह मेरे लिए अर्थहीन नहीं है क्योंकि मैं अलग-अलग पात्रों जो उनके समाधान के साथ काम नहीं करता है का विश्लेषण करने हूँ:

एक बेहतर समाधान एक पूरे के रूप पाठ को देखने के लिए है: काना की पर्याप्त मात्रा में आता है, यह है शायद जापानी, और यदि हंगुल की उचित मात्रा है, तो शायद यह कोरियाई है।

+1

कोडपेज मदद करने में मदद करेगा? लगता है कि सरलीकृत चीनी सीपी 9 36 है और परंपरागत सीपी 950 है, कम से कम माइक्रोसॉफ्ट दुनिया में। शायद एमएस और आईबीएम कोडपेज के लिए http://www.i18nguy.com/unicode/codepages.html पर शुरू करें। – rajah9

+4

मैंने एक त्वरित Google खोज की और पाया कि यह http://unicode.org/faq/han_cjk.html मुझे कुछ प्रश्न दिलचस्प हैं और वे वहां भी पारंपरिक पात्रों पर चर्चा करते हैं। आशा करता हूँ की ये काम करेगा! – Shaded

+2

छायांकित लिंक किए गए अक्सर पूछे जाने वाले प्रश्न आपके प्रश्न का उत्तर देने लगते हैं। लिंक नोट्स में उदाहरण के रूप में, आप कैसे निर्धारित करेंगे कि "चैट" अंग्रेजी या फ्रेंच है या नहीं? यदि आपको नहीं लगता कि आपका उत्तर वहां है, तो आप शायद अपने प्रश्न का विस्तार करना चाहें। – Thanatos

उत्तर

3

जैसा कि मुझे लगता है कि आपने पाया है, आप नहीं कर सकते। सरलीकृत और पारंपरिक समान पात्रों को लिखने की केवल दो शैलियों हैं - यह यूरोपीय भाषाओं के लिए रोमन और गोथिक लिपि के बीच अंतर की तरह है।

+0

हाँ, मुझे ऐसा लगता है। फॉर्म प्रकार की चीज़ पर फ़ंक्शन। यह एक पकड़ 22 है। आपको यह पता होना चाहिए कि चरित्र एस/टी है, ताकि इसका मूल्य जांच सके। तो मैं बस पहले शब्दकोश बनाने जा रहा हूं और फिर उन लोगों द्वारा जांचें :) – s84

+0

बीटीडब्ल्यू - वास्तव में बाइट्स को जांचने का एक तरीका है, लेकिन यूनिकोड साइट ने कहा कि यह अव्यवहारिक था क्योंकि अपवादों का एक टन था। जाओ पता लगाओ! :) – s84

3

जैसा कि पहले से ही कहा गया है, आप एक चरित्र से स्क्रिप्ट शैली का विश्वसनीय रूप से पता नहीं लगा सकते हैं, लेकिन पाठ के पर्याप्त लंबे नमूने के लिए यह संभव है। रूबी मणि के लिए https://github.com/jpatokal/script_detector देखें जो नौकरी करता है, और Simplified Chinese Unicode table सामान्य चर्चा के लिए।

0

कुछ वर्णों के लिए यह संभव है। पारंपरिक और सरलीकृत चरित्र ओवरलैप सेट करता है, इसलिए आपके पास मूल रूप से वर्णों के तीन सेट होते हैं:

  1. वर्ण केवल पारंपरिक हैं;
  2. वर्ण जो केवल सरलीकृत हैं;
  3. अक्षरों को छूने वाले वर्ण, और दोनों में उपलब्ध हैं।

उदाहरण के लिए अक्षर Take लें। यह # 2 और # 3 दोनों से संबंधित है ... एक सरलीकृत चरित्र के रूप में, यह और , चेहरे और नूडल्स के लिए खड़ा है। जबकि 麵 केवल एक पारंपरिक चरित्र है। तो यूनिहान डेटाबेस में, 麵 में kSimplifiedVariant है, जो पर इंगित करता है। तो आप कटौती कर सकते हैं कि यह केवल एक पारंपरिक चरित्र है।

लेकिन में kTraditionalVariant भी है, जो पर इंगित करता है। लेकिन इस जहां प्रणाली टूट जाता है: अगर आपको लगता है कि 面 घटा इस डेटा का उपयोग केवल एक सरल चरित्र है, तो आप गलत होगा ...

दूसरी ओर, एक kTraditionalVariant है, की ओर इशारा करते हैं, और ये दोनों एक "वास्तविक" सरलीकृत/पारंपरिक जोड़ी हैं।लेकिन यूनिहान डेटाबेस में कुछ भी 麵面 韩 जैसे मामलों से different 韩 जैसे मामलों को अलग करता है।

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