Difference between revisions of "Character encoding"

From PostgreSQL_wiki
Jump to: navigation, search
Line 1: Line 1:
Character encoding levert bij de uitwisseling tussen verschillende systemen problemen op. Linux, AIX en Sun Solaris gedragen zich anders.</br>
+
Character encoding levert bij de uitwisseling tussen verschillende systemen problemen op. Linux, AIX en Sun Solaris gedragen zich anders.
  +
= Geschiedenis =
De commando's file en enca
 
  +
Het probleem van vandaag is dat er pas laat een goede bruikbare open standaard is gekomen: http://en.wikipedia.org/wiki/UTF-8<br/>
  +
Hierdoor moeten we vandaag de dag systemen op elkaar aansluiten die historisch gezien met verschillende character encodings werken, waardoor telkens verwaaring en de noodzaak tot conversie bestaat. De beste benadering is om alles op een enkele standaard te standaardiseren, bijvoorbeeld UTF-8.
  +
= Character encoding van een bestand =
  +
Onder Linunx stel je de character encoding van een bestand vast met het commando:
  +
<pre>
  +
file bestandsnaam.txt
  +
enca -L bestandsnaam.txt
  +
  +
en enca
 
= checks 1 =
 
= checks 1 =
 
So if I compile this, we can check.
 
So if I compile this, we can check.
Line 16: Line 25:
 
return enc; } }
 
return enc; } }
 
</pre>
 
</pre>
 
 
= check 2 =
 
= check 2 =
 
<pre>
 
<pre>

Revision as of 08:36, 24 October 2012

Character encoding levert bij de uitwisseling tussen verschillende systemen problemen op. Linux, AIX en Sun Solaris gedragen zich anders.

Geschiedenis

Het probleem van vandaag is dat er pas laat een goede bruikbare open standaard is gekomen: http://en.wikipedia.org/wiki/UTF-8
Hierdoor moeten we vandaag de dag systemen op elkaar aansluiten die historisch gezien met verschillende character encodings werken, waardoor telkens verwaaring en de noodzaak tot conversie bestaat. De beste benadering is om alles op een enkele standaard te standaardiseren, bijvoorbeeld UTF-8.

Character encoding van een bestand

Onder Linunx stel je de character encoding van een bestand vast met het commando:

file bestandsnaam.txt
enca -L bestandsnaam.txt

en enca
= checks 1 =
So if I compile this, we can check.
<pre>
public class CharSetTest 
{      public static void main(String[] args) 
  {         System.out.println("Default Charset=" + Charset.defaultCharset());
            System.setProperty("file.encoding", "Latin-1");
            System.out.println("file.encoding=" + System.getProperty("file.encoding"));
            System.out.println("Default Charset=" + Charset.defaultCharset());
            System.out.println("Default Charset in Use=" + getDefaultCharSet());     }
       private static String getDefaultCharSet()
  {         OutputStreamWriter writer = new OutputStreamWriter(new ByteArrayOutputStream());
            String enc = writer.getEncoding();
            return enc;     } } 

check 2

try this simple program 
import java.io.FileWriter;
import java.io.IOException;
public class Test {
      public static void main(String args[]) throws IOException {
            FileWriter filewrt = new FileWriter("out");
            String defaultcharset = filewrt.getEncoding();
            filewrt.close();
            System.out.println("Default encoding is :" + defaultcharset);
      }
}

check 3

import java.io.FileWriter;
import java.io.IOException;
import java.util.Locale;
public class Test {
      public static void main(String args[]) throws IOException {
            FileWriter filewrt = new FileWriter("out");
            String defaultcharset = filewrt.getEncoding();
            filewrt.close();
            System.out.println("Default encoding is :" + defaultcharset);
            Locale locale = Locale.getDefault();
            System.out.println(locale);
      }
}

check 4

this is teh program that i run on test
import java.io.BufferedWriter;
import java.io.FileWriter;
public class FileWrite {
      public static void main(String args[]) {
            try {
                  // Create file
                  FileWriter fstream = new FileWriter("out.txt");
                  BufferedWriter out = new BufferedWriter(fstream);
                  out.write("Damásio Pinto Do Carmo");
                  // Close the output stream
                  out.close();
            } catch (Exception e) {// Catch exception if any
                  System.err.println("Error: " + e.getMessage());
            }
      }
}