Ich habe ein Java-Projekt, das UTF-8-kodierte .txt-Dateien liest, um Zeichenfolgen zu erstellen, die angezeigt werden. In Eclipse werden die Dateien wie erwartet gelesen und angezeigt, aber nach meinem Ant-Build kommen die Zeichen nicht so heraus, wie sie sollten.
Hier ist meine build.xml-Datei
<?xml version="1.0"?>
<project name="Rutherford" default="jar">
<property name="libsSrc" value="libs"/>
<property name="build" value="build"/>
<property name="classes" value="build/classes"/>
<property name="jar" value="build/jar"/>
<property name="libs" value="build/libs"/>
<path id="classpath">
<fileset dir="${libsSrc}" includes="*.jar"/>
</path>
<pathconvert property="mf.classpath" pathsep=" ">
<path refid="classpath"/>
<mapper>
<chainedmapper>
<flattenmapper/>
<globmapper from="*.jar" to="lib/*.jar"/>
</chainedmapper>
</mapper>
</pathconvert>
<target name="clean" description="remove intermediate files">
<delete dir="build"/>
</target>
<target name="compile" description="compile the Java source code to class files">
<mkdir dir="${classes}"/>
<javac srcdir="." destdir="${classes}" classpathref="classpath">
<compilerarg line="-encoding utf-8"/>
</javac>
</target>
<target name="jar" depends="compile" description="create a Jar file for the application">
<mkdir dir="${jar}"/>
<jar destfile="${jar}/App.jar">
<zipgroupfileset dir="${libsSrc}" includes="*.jar"/>
<fileset dir="${classes}" includes="**/*.class"/>
<manifest>
<attribute name="Main-Class" value="nat.rutherford.DesktopStarter"/>
<attribute name="Class-Path" value="${mf.classpath}"/>
</manifest>
</jar>
</target>
</project>
Ich habe versucht, mit der Zeichenkodierung UTF-8 zu kompilieren, indem ich
<compilerarg line="-encoding utf-8"/>
aber offensichtlich ist das nicht genug, was muss ich ändern, damit es funktioniert?
Danke
Bearbeiten 1
Ich lese die .txt-Dateien mit ein.
public String fileToString(String file) {
InputStream in = new BufferedInputStream(Gdx.files.internal(file).read());
return new Scanner(in).useDelimiter("\\A").next();
}
die eine Zeichenkette an eine String-Variable zurückgibt, dann nehme ich einfach diese Zeichenkette und gebe sie an eine Objekt
Beim Kompilieren und Ausführen in Eclipse funktioniert es gut.
Bearbeiten 2
Dies ist die Lösung
public String fileToString(String file) {
InputStream in = new BufferedInputStream(Gdx.files.internal(file).read());
return new Scanner(in, "UTF-8").useDelimiter("\\A").next();
}
Einfach, wenn man weiß, wo man suchen muss! lol Danke!