2016-06-22 15 views
0

Ich habe die Anforderung, Daten in meiner Anwendung basierend auf den Daten in einer Übersetzungs-Lookup-Map, die aus einer JSON-Datei gefüllt ist, die zuvor gespeichert. Wenn ich meine Anwendung in Eclipse ausführe, liest sie die Datei fein und zeigt die Daten in den verschiedenen Sprachen an, die ich möchte; Die Textdateicodierung des Projekts lautet "UTF-8". Aber nachdem ich meine Anwendung mit der unten angegebenen build.xml erstellt habe.Sprachdaten kommen als ??? Nach dem Build in Java-Anwendung

<project name="DRIS" default="create_jar"> 
<path id="project.class.path"> 
    <pathelement location="lib/"/> 
    <pathelement path="${java.class.path}/"/> 
    </path> 
<target name="create_jar"> 
    <tstamp> 
      <format property="DSTAMP" pattern="yyyy/MM/dd hh:mm aa"/> 
     </tstamp> 
    <jar destfile="LDC_MCM.jar"> 
     <zipfileset dir="bin" prefix=""/>    
     <zipfileset src="lib\obcsclient.jar"/> 
     <zipfileset src="lib\comm.jar"/> 
     <zipfileset src="lib\obcsclientfrmk.jar"/> 
     <zipfileset src="lib\commons-net-ntp.jar"/> 
     <zipfileset src="lib\org.json.jar"/> 
     <manifest> 
      <attribute name="Java-Version" value="${java.version} "/> 
      <attribute name="Main-Class" value="com.ars.ldcmcm.Launcher"/> 
      <attribute name="Class-Path" value="comm.jar jmf.jar mediaplayer.jar obcsclient.jar obcsclientfrmk.jar sound.jar commons-net-ntp.jar"/> 
      <attribute name="Application-Name" value="LDC_MCM"/> 
      <attribute name="Application-Version" value="1.85.106.120"/> 
      <attribute name="Application-Vendor" value="ARS Software Engineering Pvt. Ltd"/> 
      <attribute name="Application-built-on" value="${DSTAMP}" /> 
      <attribute name="Application-built-by" value="${user.name}"/> 
     </manifest> 
    </jar> 
</target> 

Dann laufe ich meine Anwendung jar es die Daten in anderen Sprachen als ??? zeigen. Ich bin mit Ameisen nicht so vertraut. Meine beste Annahme wäre, dass es möglicherweise daran liegt, dass die UTF-8-Kodierung nicht in der ANT angegeben ist. Wenn ja, kann mir jemand empfehlen, wo ich meine Kodierung in der obigen XML-Datei angeben soll. Wenn meine Annahme falsch ist, kann mir jemand helfen, dieses Problem zu lösen.

Dies ist das Stück Code, das ich die Daten aus der JSON-Datei

BufferedReader in = new BufferedReader(
        new InputStreamReader(
           new FileInputStream(config.getStringValue("TRANSLOOKUP_FOLDER") 
            + "\\" 
            + config.getStringValue("TRANSLOOKUP_FILENAME")), "UTF8")); 
     String str = ""; 
     in.mark(1); 
     if(in.read() != '\uFEFF') { 
      in.reset(); 
     } 
     while ((str = in.readLine()) != null) { 
      jsonStr.append(str); 
     } 
     in.close(); 

Antwort

0

In der ersten Zeile der ant-Datei lesen verwenden, versuchen

<?xml version="1.0" encoding="utf-8" ?>

zu setzen Aber ich weiß nicht, ob das dein Problem lösen wird.

+0

Entschuldigung, das wird mein Problem nicht lösen, und ich bin mir nicht sicher, ob die Dateicodierung beim Erstellen das Problem ist – Manesh

+0

Wird die JSON-Datei von Ihrer Anwendung außerhalb von Eclipse gefunden? – LuisGP

+0

Ja, es ist in einem separaten Ordner ... – Manesh