I have a very simple code:
package org;
import java.nio.charset.Charset;
public class Test
{
  public static void main(String[] args)
  {
    System.out.println(Charset.defaultCharset());
  }
}
I run it on Windows7 RUS JRE7.
When I run it from Eclipse 4.2 (20120614-1722) with "Debug" or "Run" (I didn't set any additional encoding preferences for Eclipse or project), I get the following result:
windows-1252
And it seems correct for me.
But when I pack this with ANT 1.8.2 into JAR with default settings:
<project name="Test" default="dist" basedir=".">
    <description>
        Simple build XML
    </description>
    <!-- set global properties for this build -->
    <property name="src" location="src"/>
    <property name="build" location="build"/>
    <property name="dist"  location="dist"/>
    <target name="init">
        <!-- Create the build directory structure used by compile -->
        <delete dir="${build}"/>
        <mkdir dir="${build}"/>
    </target>
    <target name="compile" depends="init" description="compile the source" >
        <!-- Compile the java code from ${src} into ${build} -->
        <javac srcdir="${src}" destdir="${build}" includeantruntime="false"/>
    </target>
    <target name="dist" depends="compile" description="generate the distribution" >
        <!-- Create the distribution directory -->
        <delete dir="${dist}"/>
        <mkdir dir="${dist}"/>
        <!-- Put everything from ${build} into the test.jar file -->
        <jar jarfile="${dist}/test.jar" basedir="${build}">
            <manifest>
                <attribute name="Main-Class" value="org.Test"/>
            </manifest>
        </jar>
    </target>
</project>
I get the following result when running it:
>java -jar test.jar
windows-1251
I was hoping to get the same result here. What am I doing wrong? Which is the correct way to determine default charset then?
Update: The reason to ask this question was, that I don't really read or write file, where I can specify encoding manually. I simply have a String returned from javax.sound.sampled.Mixer.Info.getName() and need to display it properly in different system charsets.
Update2: It seems, that the reason is that javax.sound.sampled.Mixer.Info.getName() encodes the "System Charset" specific result with CP1251, so I need to decode it back to "System Charset". But how to find it out?
 
     
    