Setting UTF-8 Encoding in PrintStream

This section provides a tutorial example on how to set UTF-8 encoding an output PrintStream to correctly print non-ASCII characters.

In order to print non-ASCII characters stored in Java strings, you need to set the correct encoding in the PrintStream object.

Here is how I fixed the problem you saw in the previous section:

/* HelloUtf8ConvertedFixed.java
 * Copyright (c) 2018 HerongYang.com. All Rights Reserved.
 */
import java.io.*;
public class HelloUtf8ConvertedFixed {
   public static void main(String[] a) {
      try {
         PrintStream out = 
            new PrintStream("Hello.txt", "UTF-8");
         System.setOut(out);
         System.out.println("Hello world!");
         System.out.println("\u4e16\u754c\u4f60\u597d\uff01");
      } catch (Exception e) {
      }
   }
}

Check the output of this program:

C:\herong>javac HelloUtf8ConvertedFixed.java

C:\herong>java HelloUtf8ConvertedFixed

C:\herong>type Hello.txt

Hello world!
世界你好!

Excellent! This final program shows how Chinese characters can be correctly encoded in the Java source file, and correctly printed in the output file.

Last update: 2018.

Table of Contents

 About This Book

 Java Tools Terminology

 Java Tools Included in JDK

 javac - The Java Program Compiler

 jar - The JAR File Tool

 jlink - The JRE Linker

 jmod - The JMOD File Tool

 jimage - The JIMAGE File Tool

 java - The Java Program Launcher

 jdb - The Java Debugger

 jcmd - The JVM Diagnostic Tool

 jconsole - Java Monitoring and Management Console

 jstat - JVM Statistics Monitoring Tool

 JVM Troubleshooting Tools

 jvisualvm (Java VisualVM) - JVM Visual Tool

 jmc - Java Mission Control

 javap - The Java Class File Disassembler

 keytool - Public Key Certificate Tool

 jarsigner - JAR File Signer

 jshell - Java Language Shell

native2ascii - Native-to-ASCII Encoding Converter

 native2ascii - Encoding Converter Command and Options

 javac - Using CP1252 to Process Source File

 "native2ascii -encoding" - UTF-8 to \udddd Conversion

Setting UTF-8 Encoding in PrintStream

 Converting \udddd Sequences Back with "-reverse" Option

 Outdated Tutorials

 References

 Full Version in PDF/EPUB