मुझे लगता है कि आप भाषा का प्रयोग करना चाहिए,
के लिए उदाहरण के लिए, "TITLE" .toLowerCase() एक तुर्की लोकेल में "टिटल" देता है, जहां 'ı' लेटिन लघु पत्र डॉटलेस I चरित्र है। को लोकेल असंवेदनशील तारों के लिए सही परिणाम प्राप्त करें, सेLowerCase (Locale.ENGLISH) का उपयोग करें।
मैं आपकी समस्या का हल के रूप में इन कड़ियों को देखें और यह आप में मन में स्थिति रखने के लिए "तुर्की"
**FROM THE LINKS**
toLowerCase बात है() का सम्मान करता है अंतर्राष्ट्रीयकरण (i18n)। यह आपके लोकेल के संबंध में केस रूपांतरण करता है। जब आप सेLowerCase() को कॉल करते हैं, आंतरिक रूप से LowerCase (Locale.getDefault()) को कहा जाता है। यह लोकेल संवेदनशील है और आपको के आस-पास एक तर्क लिखना नहीं चाहिए, जो इसे स्वतंत्र रूप से लोकेल की व्याख्या करता है।
import java.util.Locale;
public class ToLocaleTest {
public static void main(String[] args) throws Exception {
Locale.setDefault(new Locale("lt")); //setting Lithuanian as locale
String str = "\u00cc";
System.out.println("Before case conversion is "+str+
" and length is "+str.length());// Ì
String lowerCaseStr = str.toLowerCase();
System.out.println("Lower case is "+lowerCaseStr+
" and length is "+lowerCaseStr.length());// iı`
}
}
उपरोक्त कार्यक्रम में, इससे पहले और रूपांतरण के बाद स्ट्रिंग की लंबाई को देखो। यह 1 और 3 होगा। हाँ से पहले स्ट्रिंग की लंबाई और रूपांतरण अलग होने के बाद। जब आप इस परिदृश्य पर स्ट्रिंग लम्बाई पर निर्भर करते हैं तो आपका तर्क टॉस के लिए जाएगा। जब आपका प्रोग्राम किसी भिन्न वातावरण में निष्पादित हो जाता है, तो यह असफल हो सकता है। यह कोड समीक्षा में अच्छा पकड़ होगा।
इसे सुरक्षित बनाने के लिए, आप अन्य विधि सेLowerCase (Locale.English) का उपयोग कर सकते हैं और लोकेल को हमेशा अंग्रेजी में ओवरराइड कर सकते हैं। लेकिन फिर आप अंतर्राष्ट्रीयकरण नहीं कर रहे हैं।
तो क्रूक्स है, लोवरकेस() लोकेल विशिष्ट है।
reference 1
reference 2
reference 3
Dotless-मैं, एक लोअरकेस 'i' डॉट के बिना है। इस चरित्र का अपरकेस सामान्य "मैं" है। एक और चरित्र है, "मैं डॉट के साथ"। इस चरित्र का लोअरकेस सामान्य लोअरकेस "i" है।
क्या आपने समस्या देखी है? यह अनमोल रूपांतरण प्रोग्रामिंग में एक गंभीर समस्या का कारण बनता है। हम इस समस्या का ज्यादातर जावा अनुप्रयोगों में सामना करते हैं क्योंकि (आईएमएचओ) लोअरकेस और अपरकेस फ़ंक्शन के खराब कार्यान्वयन के कारण।
जावा में, String.toLowerCase() विधि डिफ़ॉल्ट लोकेल के अनुसार वर्णों को लोअरकेस में परिवर्तित करती है। यह समस्या का कारण बनता है यदि आपका एप्लिकेशन तुर्की लोकेल में काम करता है और विशेष रूप से यदि आप इस फ़ंक्शन का उपयोग किसी फ़ाइल नाम या यूआरएल के लिए कर रहे हैं जो किसी निश्चित चरित्र सेट का पालन करना होगा।
मैंने पहले दो गंभीर उदाहरणों को ब्लॉग किया है: स्क्रिप्ट पुस्तकालयों के साथ संकलन त्रुटियों को उनके नाम में "i" और एक्सएसपी प्रबंधक की गलती के साथ संकलित त्रुटियां यदि कोई XPAGE उसके नाम पर "I" डेटाबेस में है।
एक लंबा इतिहास है, जैसा कि मैंने कहा था। उदाहरण के लिए कुछ आर 7 संस्करण में, राउटर प्राप्तकर्ता को एक संदेश भेजने में असमर्थ था अगर उसका नाम "मैं" से शुरू होता है। संदेश रिपोर्टिंग एजेंट आर 8 तक तुर्की लोकेल में नहीं चल रहे थे। तुर्की लोकेल वाला कोई भी कमल नोट्स 8.5.1 इंस्टॉल नहीं कर सका (यह असली है!)। सूची जारी है ...
तुर्की से लगभग कोई बीटा परीक्षक नहीं है और ग्राहक इन समस्याओं के लिए पीएमआर नहीं खोलते हैं। इसलिए विकास की टीमों के लिए ये समस्याएं पहली प्राथमिकता तक नहीं जा रही हैं।
भी जावा टीम ताज़ा दस्तावेज़ों के लिए एक विशेष चेतावनी जोड़ा गया है:
इस विधि स्थान संवेदनशील है, और अप्रत्याशित परिणाम अगर तार स्वतंत्र रूप से स्थान व्याख्या की जा करने का इरादा कर रहे हैं कि के लिए इस्तेमाल हो सकता है। उदाहरण प्रोग्रामिंग भाषा पहचानकर्ता, प्रोटोकॉल कुंजी, और HTML टैग हैं। उदाहरण के लिए, एक तुर्की लोकेल में "TITLE" .toLowerCase() locale "tıtle" देता है, जहां 'ı' लेटिन लघु पत्र DOTLESS I वर्ण है। लोकेल असंवेदनशील तारों के लिए सही परिणाम प्राप्त करने के लिए, LowerCase (Locale.ENGLISH) का उपयोग करें।
कृपया लिंक मैं यह सब कठबोली पोस्ट पढ़ें
क्या आपने स्थानीय लोगों का उपयोग नहीं करने की कोशिश की? – alaster
मैं इसे करने की कोशिश की ... यह Locale.ENGLISH के समान है ...... लेकिन अभी भी मैं शक है कि क्या यह कोई अंतर नहीं है के रूप में वहां मौजूद तुर्की के लिए .... तो उर कोई स्थलों का उपयोग कर करना होगा कह ... । ??? –
आपका आवेदन डिफ़ॉल्ट लोकेल का चयन करेगा, इसलिए यदि कोई तुर्की में तुर्की लोकेल के साथ अपना आवेदन चलाएगा तो वह बिना किसी डॉट – alaster