Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

फ़ाइल को सीपी 1252 से यूटीएफ -8 जावा में कनवर्ट करें

रूपांतरण प्रक्रिया को सत्यापित करने का एक तरीका विशेष वर्णों के साथ गलत वर्णों को चुपचाप बदलने के बजाय त्रुटियों से बचने के लिए वर्णसेट डिकोडर और एन्कोडर को कॉन्फ़िगर करना है:

CharsetDecoder inDec=Charset.forName("windows-1252").newDecoder()
  .onMalformedInput(CodingErrorAction.REPORT)
  .onUnmappableCharacter(CodingErrorAction.REPORT);

CharsetEncoder outEnc=StandardCharsets.UTF_8.newEncoder()
  .onMalformedInput(CodingErrorAction.REPORT)
  .onUnmappableCharacter(CodingErrorAction.REPORT);

try(FileInputStream is=new FileInputStream(filepath);
    BufferedReader reader=new BufferedReader(new InputStreamReader(is, inDec));
    FileOutputStream fw=new FileOutputStream(destpath);
    BufferedWriter out=new BufferedWriter(new OutputStreamWriter(fw, outEnc))) {

    for(String in; (in = reader.readLine()) != null; ) {
        out.write(in);
        out.newLine();
    }
}

ध्यान दें कि आउटपुट एन्कोडर यहां समरूपता के लिए कॉन्फ़िगर किया गया है, लेकिन UTF-8 प्रत्येक यूनिकोड वर्ण को एन्कोड करने में सक्षम है, हालांकि, जब आप अन्य रूपांतरण करने के लिए उसी कोड का उपयोग करना चाहते हैं, तो इसे सममित करने से मदद मिलेगी।

इसके अलावा, ध्यान दें कि यह मदद नहीं करेगा यदि इनपुट फ़ाइल एक अलग एन्कोडिंग में है, लेकिन बाइट्स की गलत व्याख्या करने से वैध वर्ण बन जाते हैं। एक बात पर विचार करना है कि क्या इनपुट एन्कोडिंग "windows-1252" वास्तव में सिस्टम के डिफ़ॉल्ट एन्कोडिंग का मतलब था (और क्या यह वास्तव में वही है)। यदि संदेह है, तो आप Charset.defaultCharset() . का उपयोग कर सकते हैं इसके बजाय Charset.forName("windows-1252") जब वास्तव में इच्छित रूपांतरण default है → UTF-8




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL में वेब-सेवा/एपीआई से कनेक्ट करें?

  2. MySQL दो क्षेत्रों में तालिकाओं में कैसे शामिल हों

  3. क्या मैं उन इकाइयों के लिए हाइबरनेट क्वेरी भाषा का उपयोग कर सकता हूं जिन्हें किसी तालिका में मैप नहीं किया गया है?

  4. MySQL में सामान्य तालिका अभिव्यक्ति

  5. MYSQL डेटाबेस डेटा के साथ जावास्क्रिप्ट सरणी लोड करें