diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-08-07 12:11:11 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-08-07 12:11:11 +0000 |
commit | 158698c6ad3a95b52a3120be1bcdd381bc8750d5 (patch) | |
tree | d2d30985b0bcd0d73b96cf697b84f14165a5c02f /src/jvm/clojure | |
parent | 24118f2aca814de17946573930d174684a760ee8 (diff) |
made UTF-8 default encoding on iostreams *in*, *out*, and in loadFile and loadResource, from cemerick
Diffstat (limited to 'src/jvm/clojure')
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 2 | ||||
-rw-r--r-- | src/jvm/clojure/lang/RT.java | 9 | ||||
-rw-r--r-- | src/jvm/clojure/lang/Repl.java | 2 |
3 files changed, 8 insertions, 5 deletions
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index 320e9060..7da12352 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -4100,7 +4100,7 @@ public static Object loadFile(String file) throws Exception{ FileInputStream f = new FileInputStream(file); try { - return load(new InputStreamReader(f), new File(file).getAbsolutePath(), (new File(file)).getName()); + return load(new InputStreamReader(f,RT.UTF8), new File(file).getAbsolutePath(), (new File(file)).getName()); } finally { diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java index 18a9521e..1c35944b 100644 --- a/src/jvm/clojure/lang/RT.java +++ b/src/jvm/clojure/lang/RT.java @@ -23,6 +23,7 @@ import java.math.BigInteger; import java.security.AccessController; import java.security.PrivilegedAction; import java.net.URL; +import java.nio.charset.Charset; public class RT{ @@ -160,14 +161,16 @@ Symbol.create("SuppressWarnings"), SuppressWarnings.class // Symbol.create("SortedSet"), "java.util.SortedSet" ); +// single instance of UTF-8 Charset, so as to avoid catching UnsupportedCharsetExceptions everywhere +static public Charset UTF8 = Charset.forName("UTF-8"); static public final Namespace CLOJURE_NS = Namespace.findOrCreate(Symbol.create("clojure")); //static final Namespace USER_NS = Namespace.findOrCreate(Symbol.create("user")); final static public Var OUT = - Var.intern(CLOJURE_NS, Symbol.create("*out*"), new OutputStreamWriter(System.out)); + Var.intern(CLOJURE_NS, Symbol.create("*out*"), new OutputStreamWriter(System.out,UTF8)); final static public Var IN = Var.intern(CLOJURE_NS, Symbol.create("*in*"), - new LineNumberingPushbackReader(new InputStreamReader(System.in))); + new LineNumberingPushbackReader(new InputStreamReader(System.in,UTF8))); final static Keyword TAG_KEY = Keyword.intern(null, "tag"); final static public Var AGENT = Var.intern(CLOJURE_NS, Symbol.create("*agent*"), null); final static public Var MACRO_META = Var.intern(CLOJURE_NS, Symbol.create("*macro-meta*"), null); @@ -350,7 +353,7 @@ public static void loadResourceScript(Class c, String name, boolean failIfNotFou InputStream ins = c.getResourceAsStream("/" + name); if(ins != null) { - Compiler.load(new InputStreamReader(ins), name, file); + Compiler.load(new InputStreamReader(ins,UTF8), name, file); ins.close(); } else if(failIfNotFound) diff --git a/src/jvm/clojure/lang/Repl.java b/src/jvm/clojure/lang/Repl.java index 4c15be13..c91ed4b3 100644 --- a/src/jvm/clojure/lang/Repl.java +++ b/src/jvm/clojure/lang/Repl.java @@ -53,7 +53,7 @@ public static void main(String[] args) throws Exception{ } //repl IO support - LineNumberingPushbackReader rdr = new LineNumberingPushbackReader(new InputStreamReader(System.in)); + LineNumberingPushbackReader rdr = new LineNumberingPushbackReader(new InputStreamReader(System.in,RT.UTF8)); OutputStreamWriter w = (OutputStreamWriter) RT.OUT.get();//new OutputStreamWriter(System.out); Object EOF = new Object(); |