2012-04-26 9 views
15

पर कॉल करता हूं तो मुझे कौन सा लोकेल निर्दिष्ट करना चाहिए जावा में स्ट्रिंग टू लोवरकेस विधि डिफ़ॉल्ट सिस्टम लोकेल का उपयोग करती है ताकि यह निर्धारित किया जा सके कि लोअरकेसिंग को कैसे संभाला जाए। अगर मैं कुछ एएससीआईआईआई पाठ को कम कर रहा हूं और यह सुनिश्चित करना चाहता हूं कि यह अपेक्षाकृत संसाधित हो कि मुझे लोकेल का उपयोग क्यों करना चाहिए?जब मैं स्ट्रिंग टू लोवरकेस

संपादित करें: मैं मुख्य रूप से स्कीमा में तालिका और स्तंभ नाम जैसे प्रोग्रामिंग पहचानकर्ताओं के बारे में चिंतित हूं। जैसे मैं अंग्रेजी निचले आवरण को लागू करना चाहता हूं।

Locale.ROOT कहा गया है कि यह संवेदनशील संचालन

Locale.ENGLISH स्थान के लिए भाषा/देश तटस्थ स्थान होते हैं, शायद यह भी एक सुरक्षित विकल्प होगा।

+0

"कुछ ASCII पाठ": क्या आप वास्तव में ASCII पाठ का मतलब है। या आपका मतलब "कुछ पाठ" है? – Raedwald

+0

मेरा मतलब ASCII था। मैं यह कहने की कोशिश कर रहा था कि मैं किसी भी गैर ASCII वर्णों का उपयोग नहीं कर रहा था। मैंने इस सवाल पर स्पष्ट किया है। – mchr

उत्तर

5

हां, Locale.ENGLISH प्रोग्रामिंग भाषा पहचानकर्ताओं और यूआरएल भागों जैसी चीजों के संचालन के लिए एक सुरक्षित विकल्प है क्योंकि इसमें किसी भी विशेष आवरण नियम और अंग्रेजी के सभी 7-बिट ASCII वर्ण शामिल नहीं हैं- 7-बिट में कनवर्ट करें ASCII वर्ण।

यह अन्य सभी स्थानों के लिए सच नहीं है। तुर्की में, 'मैं' और 'मैं' वर्ण एक-दूसरे के मामले में परिवर्तित नहीं होते हैं।

"Dotted and dotless I" बताते हैं:

तुर्की वर्णमाला का लैटिन वर्णमाला का एक प्रकार है, पत्र मैं, एक बिंदीदार और अन्य dotless की दो अलग संस्करण भी शामिल है।

यूनिकोड में, यू +0131 एक कम केस अक्षर डॉटलेस i (ı) है। यू +0130 (İ) पूंजी मैं डॉट के साथ है। आईएसओ -885 9-9 क्रमशः 0xFD और 0xDD पदों पर है। सामान्य टाइपोग्राफी में, जब कम मामला मुझे अन्य उच्चारविज्ञानों के साथ जोड़ा जाता है, तो आमतौर पर डाइक्रिटिक जोड़े जाने से पहले डॉट को हटा दिया जाता है; हालांकि, यूनिकोड अभी भी समतुल्य संयोजन अनुक्रमों को सूचीबद्ध करता है जैसे कि बिंदीदार आई, जिसमें तर्कसंगत रूप से यह सामान्य बिंदीदार i चरित्र है जिसे संशोधित किया जा रहा है।

अधिकांश यूनिकोड सॉफ़्टवेयर अपरकेस I और I को कम करने के लिए I, लेकिन, जब तक कि विशेष रूप से तुर्की के लिए सेट अप नहीं किया जाता है, यह मुझे i और uppercases I को कम करता है। इस प्रकार अपरकेसिंग, फिर लोअरकेसिंग, या इसके विपरीत, अक्षरों को बदलता है।

विशेष अपवाद की सूची http://unicode.org/Public/UNIDATA/SpecialCasing.txt

# ================================================================================ 

# Turkish and Azeri 

# I and i-dotless; I-dot and i are case pairs in Turkish and Azeri 
# The following rules handle those cases. 

0130; 0069; 0130; 0130; tr; # LATIN CAPITAL LETTER I WITH DOT ABOVE 
0130; 0069; 0130; 0130; az; # LATIN CAPITAL LETTER I WITH DOT ABOVE 

# When lowercasing, remove dot_above in the sequence I + dot_above, which will turn into i. 
# This matches the behavior of the canonically equivalent I-dot_above 

0307; ; 0307; 0307; tr After_I; # COMBINING DOT ABOVE 
0307; ; 0307; 0307; az After_I; # COMBINING DOT ABOVE 

पर बनाए रखा है ...

+0

"यह अन्य सभी स्थानों के लिए सच नहीं है", जो ASCII का उपयोग नहीं कर सकता है। – Raedwald

+0

आप रूट लोकेल का उपयोग किस परिस्थितियों में करेंगे?मैं इसका मतलब यह कह रहा हूं कि मैं कोई विशेष मामला केस-फोल्डिंग लागू नहीं करना चाहता हूं। – mchr

+0

@ रेडवाल्ड, मुझे यकीन नहीं है कि मैं समझता हूं। क्या आप अपनी टिप्पणी पर विस्तार कर सकते हैं? –

2

मैं कुछ ASCII पाठ lowercasing और यकीन है कि यह है होना चाहता हूँ कर रहा हूँ तो अपेक्षित रूप से संसाधित किया गया है कि मुझे किस लोकेल का उपयोग करना चाहिए?

यह आपके लिए "अपेक्षित" अर्थों पर निर्भर करता है। लोकेल निर्दिष्ट करने की इजाजत देने का मुद्दा यह है कि अपरकेसिंग/लोअरकेसिंग सभी भाषाओं में समान काम नहीं करती है, भले ही वे एक ही अक्षरों का उपयोग कर सकें। तो उस लोकेल को निर्दिष्ट करें जिसमें आप और/या आपके ग्राहक रहते हैं, और संभवतः यह आपके काम के अनुसार काम करेगा।

+0

ओपी कहते हैं "कुछ ASCII पाठ"। चूंकि एएससीआईआई केवल अंग्रेजी पाठ के लिए उपयोगी है, "अपेक्षित" का अर्थ अंग्रेज़ी में अपेक्षित होना चाहिए। – Raedwald

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