Changing Eclipse Console Encoding to Output Unicode Characters


The Problem
Eclipse default encoding is Cp1252, This will cause Eclipse output non-English characters as question marks(?) or some weird characters in the console.

Change Encoding Globally
If we want to change the text encoding globally, we can open Window -> Preferences -> General -> Workspace. Change the Text file encoding from default Cp1252 to UTF-8.


Or we can change file.encoding in eclipse.ini by adding:-Dfile.encoding=UTF-8, then restart Eclipse.

Change Encoding per Application
If we just want to change console encoding for one application, open Run As –> Run Configurations, click the Common tab, change the encoding from default to UTF-8.

Test Code
The following test code will get default file encoding, and print chines words: 大家好.
public void testDefaultEncoding() throws UnsupportedEncodingException {
    System.out.println(System.getProperty("file.encoding"));
    PrintStream sysout = new PrintStream(System.out, true, "UTF-8");
    //print 大家好
    sysout.println("\u5927\u5bb6\u597d");
} 
Change log4j encoding
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.encoding=UTF-8

Resources
Interactive native2ascii
native2ascii - Native-to-ASCII Converter

Labels

adsense (5) Algorithm (69) Algorithm Series (35) Android (7) ANT (6) bat (8) Big Data (7) Blogger (14) Bugs (6) Cache (5) Chrome (19) Code Example (29) Code Quality (7) Coding Skills (5) Database (7) Debug (16) Design (5) Dev Tips (63) Eclipse (32) Git (5) Google (33) Guava (7) How to (9) Http Client (8) IDE (7) Interview (88) J2EE (13) J2SE (49) Java (186) JavaScript (27) JSON (7) Learning code (9) Lesson Learned (6) Linux (26) Lucene-Solr (112) Mac (10) Maven (8) Network (9) Nutch2 (18) Performance (9) PowerShell (11) Problem Solving (11) Programmer Skills (6) regex (5) Scala (6) Security (9) Soft Skills (38) Spring (22) System Design (11) Testing (7) Text Mining (14) Tips (17) Tools (24) Troubleshooting (29) UIMA (9) Web Development (19) Windows (21) xml (5)