Java Tools Tutorials - Herong's Tutorial Examples - Version 6.10, by Dr. Herong Yang
"native2ascii -encoding" - UTF-8 to \udddd Conversion
This section provides a tutorial example on how to convert UTF-8 character strings to \udddd Unicode code sequences with the 'native2ascii -encoding' command.
Now let's see how we can fix the encoding problem with HelloUtf8.java demonstrated in the previous section.
1. Convert HelloUtf8.java to \udddd Unicode code sequences using the "native2ascii -encoding utf-8" command:
C:\herong>\Progra~1\java\jdk1.8.0\bin\native2ascii -encoding utf-8 HelloUtf8.java HelloUtf8Converted.java
2. Rename the class name in HelloUtf8Converted.java with an editor:
/* HelloUtf8Converted.java * Copyright (c) 2018 HerongYang.com. All Rights Reserved. */ public class HelloUtf8Converted { public static void main(String[] a) { System.out.println("Hello world!"); System.out.println("\u4e16\u754c\u4f60\u597d\uff01"); } }
3. Compile and run HelloUtf8Converted.java:
C:\herong>javac HelloUtf8Converted.java C:\herong>java HelloUtf8Converted Hello world! ?????
What happens to the Chinese string printed on the console? Why I am not getting Chinese characters back in the output?
The problem is not caused by those \udddd Unicode code sequences used to represent the Chinese string. Those \udddd Unicode code sequences correctly inserted Chinese characters into the storage of a string variable. The problem is caused by the default encoding used by the "out" stream. See the next section on how to fix this problem.
Last update: 2018.
Table of Contents
javac - The Java Program Compiler
java - The Java Program Launcher
jcmd - The JVM Diagnostic Tool
jconsole - Java Monitoring and Management Console
jstat - JVM Statistics Monitoring Tool
jvisualvm (Java VisualVM) - JVM Visual Tool
javap - The Java Class File Disassembler
keytool - Public Key Certificate Tool
►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