2010-03-23 24 views
17

नीचे दिए गए लिंक के आधार पर, मैं उलझन में हूं कि लुआ प्रोग्रामिंग भाषा यूनिकोड का समर्थन करती है या नहीं।क्या लुआ यूनिकोड का समर्थन करता है?

http://lua-users.org/wiki/LuaUnicode

यह यह होता है लेकिन सीमाएँ हैं प्रकट होता है। मैं बस समझ में नहीं आता, क्या सीमा कुछ बड़ी/कुंजी है या कोई बड़ा सौदा नहीं है?

उत्तर

0

यह इस अर्थ में इसका समर्थन करता है कि आप ल्यूआ तारों में यूनिकोड का उपयोग कर सकते हैं। यह विशेष रूप से उस पर निर्भर करता है जो आप करने की योजना बना रहे हैं, लेकिन अधिकांश सीमाओं को लुआ को अपने कार्यों के साथ विस्तारित करके आसानी से काम किया जा सकता है।

6

यदि आप एक संक्षिप्त उत्तर चाहते हैं, तो यह लिंक साइट पर डाला गया 'हां और नहीं' है।

लुआ यूनिकोड को स्ट्रिंग में मनमाने ढंग से बाइट मान निर्दिष्ट करने, संग्रहीत करने और क्वेरी करने के तरीके का समर्थन करता है, ताकि आप किसी भी प्रकार की यूनिकोड-एन्कोडिंग एन्कोडेड स्ट्रिंग को लुआ स्ट्रिंग में स्टोर कर सकें।

समर्थित नहीं है यूनिकोड चरित्र द्वारा पुनरावृत्ति है, यूनिकोड वर्णों में स्ट्रिंग लम्बाई के लिए कोई मानक फ़ंक्शन नहीं है। इसलिए उच्च स्तर की यूनिकोड समर्थन (जैसे कि पाइथन में लंबाई, निचले -> ऊपरी के साथ क्या उपलब्ध है मामला रूपांतरण, मनमानी कोडिंग आदि में एन्कोडिंग) उपलब्ध नहीं है।

+5

नोट करें उच्च गुणवत्ता वाले यूनिकोड समर्थन के लिए http://lua-users.org/wiki/LuaUnicode के नीचे लिंक हैं। – grom

9

लुआ को यूनिकोड के लिए कोई समर्थन नहीं है (तारों में किसी भी बाइट मान को स्वीकार करने के अलावा)। लाइब्रेरी slnunicode में बहुत सारे यूनिकोड स्ट्रिंग फ़ंक्शन हैं, हालांकि। उदाहरण के लिए unicode.utf8.len

: -

16

(ध्यान दें इस जवाब पूरी तरह से एक और सवाल पर grom की टिप्पणी से चोरी हो जाता है मैं सिर्फ यह अपने आप ही जवाब हकदार लगता है) आप कर सकते हैं निश्चित रूप से दुकान यूनिकोड UTF8 के रूप में lua में तार,। आप इन्हें किसी भी स्ट्रिंग के रूप में उपयोग कर सकते हैं।

हालांकि लुआ इस तरह के तार — पर उच्च स्तरीय "यूनिकोड जागरूक" संचालन के लिए कोई डिफ़ॉल्ट समर्थन प्रदान नहीं करता है, उदाहरण के लिए, वर्णों में स्ट्रिंग लंबाई की गिनती, निम्न-से-ऊपरी-मामले को परिवर्तित करना आदि। क्या यह कमी सार्थक है क्योंकि आप वास्तव में इस स्ट्रिंग के साथ क्या करना चाहते हैं इस पर निर्भर करता है।

संभावित दृष्टिकोण, अपने उपयोग के आधार पर:

  1. तुम सिर्फ इनपुट/आउटपुट/दुकान तार करना चाहते हैं, और आम तौर पर उन्हें "पूरे इकाइयों", आप नहीं हो सकता (टेबल अनुक्रमण आदि के लिए) के रूप में उपयोग करते हैं किसी भी विशेष हैंडलिंग की ज़रूरत है। इस मामले में, आप इन तारों को बाइनरी ब्लब्स के रूप में देखते हैं।

  2. utf8 के चालाक डिज़ाइन के कारण, कुछ प्रकार के स्ट्रिंग मैनिपुलेशन को यूटीएफ 8 युक्त तारों पर किया जा सकता है और बिना किसी विशेष देखभाल के सही परिणाम मिलेगा।

    उदाहरण के लिए, आप तारों को जोड़ सकते हैं, उन्हें एसीसी अक्षरों से पहले/बाद में विभाजित कर सकते हैं। उदाहरण के तौर पर, यदि आपके पास स्ट्रिंग "開発.txt" है और आप "।" उस स्ट्रिंग में string.find (string_var, ".") का उपयोग करके, और उसके बाद इसे फ़ंक्शन "開発" और ".txt" में उपयोग करके विभाजित करें, तो परिणाम परिणाम स्ट्रिंग्स सही utf8 स्ट्रिंग्स होंगी, भले ही आप किसी भी प्रकार के "यूनिकोड-जागरूक" एल्गोरिदम का उपयोग नहीं कर रहे हों।

    इसी प्रकार, आप स्ट्रिंग्स (उच्च बिट शून्य वाले) में केवल ASCII वर्णों पर केस-रूपांतरण कर सकते हैं, और बाकी स्ट्रिंग्स को बाइनरी के बिना बाइनरी के रूप में देख सकते हैं।

  3. कुछ utf8- जागरूक ऑपरेशन इतना आसान हैं कि उन्हें करने के लिए केवल अपने कार्यों को लिखना आसान है।

    उदाहरण के लिए, स्ट्रिंग के यूनिकोड-अक्षरों में लंबाई की गणना करने के लिए, केवल उच्च बिट शून्य (ASCII वर्ण) वाले वर्णों की संख्या की गणना करें, और शीर्ष दो बिट्स वाले वर्णों की संख्या 11 ("बाइट्स अग्रणी "गैर-ASCII वर्णों के लिए); लंबाई उन दोनों का योग है।

  4. अधिक जटिल आपरेशनों — के लिए जैसे, गैर- ASCII वर्ण, आदि पर मामला-रूपांतरण — आप शायद इस तरह के (जैसा कि पहले उल्लेख) पर उन के रूप में एक लुआ यूनिकोड पुस्तकालय, का उपयोग करना होगा Lua-users Unicode page

3

Lua 5.3 अब जारी किया गया था। यह a basic UTF-8 library के साथ आता है।

आप एक UTF-8 स्ट्रिंग (string.len के रूप में बाइट्स की नहीं संख्या) की लंबाई हो रही के बारे में UTF-8 एन्कोडिंग काम करने के लिए, utf8 पुस्तकालय का उपयोग कर सकते हैं, प्रत्येक वर्ण (नहीं बाइट्स), आदि

मिलान

यह एन्कोडिंग के अलावा अन्य मूल समर्थन प्रदान नहीं करता है, जैसे यह चरित्र एक चीनी चरित्र है?

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