2013-04-03 4 views
0

Quelqu'un peut-il décrire comment spécifier les encodages de caractères correctement dans JavaScript Rhino pour moi s'il vous plaît? Je suis raisonnablement familier avec le tri des problèmes de codage entre une application Java et la base de données (MySQL), et entre l'application et le navigateur, mais ce problème semble impliquer des e/s de shell et de fichier.Encodage des caractères de Mozilla Rhino

J'ai une application écrite principalement en JavaScript qui s'exécute sur Rhino, soit à l'intérieur d'Apache Tomcat, soit de manière autonome via le shell Rhino.

tout le code source de js est enregistré en tant que UTF-8 (dans Eclipse), et est chargé dans Rhino soit en utilisant la fonction "chargement" de Shell Rhino, ou (si en cours d'exécution à l'intérieur Tomcat) par ce qui suit:

public static void loadScript(String sFile) throws Exception { 
    java.io.BufferedReader oReader = new java.io.BufferedReader(
     new java.io.InputStreamReader(new java.io.FileInputStream(sDir + sFile), "UTF-8")); 
    org.mozilla.javascript.Context cx = contextFactory.enterContext(); 
    try { 
     cx.evaluateReader(scope, oReader, sFile, 1, null); 
    } finally { 
     org.mozilla.javascript.Context.exit(); 
    } 
    oReader.close(); 
} 

Les caractères tels que '£' et '€' spécifiés dans le code source sont altérés lors de la sortie de l'application.

Toute aide reçue avec reconnaissance ...

+1

Comment Produisez-vous sortie? Utilisez-vous la fonction 'print' liée à Rhino REPL? Comment les symboles sont-ils corrompus? Sont-ils écrits comme encodés en utilisant le codage par défaut de la JVM? –

+0

S'il s'agit d'un système d'exploitation Windows, ils sont susceptibles d'être corrompus par System.out – McDowell

Répondre