- Java I18N - Home
- Java I18N - Overview
- Java I18N - Environment Setup
- Locale Class Examples
- Java I18N - Locale Class
- Java I18N - Locale Details
- Java I18N - Display Language
- ResourceBundle Class Examples
- Java I18N - ResourceBundle Class
- NumberFormat Class Examples
- Java I18N - NumberFormat Class
- Java I18N - Format Currencies
- Java I18N - Format Percentages
- Java I18N - Set Min/Max Precision
- Java I18N - Set Rounding Mode
- Java I18N - Parsing Numbers
- DecimalFormat Class Examples
- Java I18N - DecimalFormat Class
- Java I18N - Formatting Patterns
- Java I18N - Locale Specific DecimalFormat
- Java I18N - DecimalFormatSymbols Class
- Java I18N - Grouping Digits
- DateFormat Class Examples
- Java Java - DateFormat Class
- Java I18N - Formatting Dates
- Java I18N - Formatting Time
- Java I18N - Formatting Date and Time
- SimpleDateFormat Class Examples
- Java I18N - SimpleDateFormat Class
- Java I18N - Formatting Date
- Java I18N - DateFormatSymbols Class
- Java I18N - Date Format Patterns
- Time Zones Examples
- Java I18N - UTC
- Unicode Conversion
- Java I18N - From and To String Conversion
- Java I18N - From Reader and To Writer Conversion
- Related Tutorials
- Java Tutorial
- JDBC Tutorial
- SWING Tutorial
- AWT Tutorial
- Servlets Tutorial
- JSP Tutorial
- Java I18N Useful Resources
- Java I18N - Quick Guide
- Java I18N - Useful Resources
- Java I18N - Discussion
Unicode Conversion from/to Reader/Writer
Reader and Writer classes are character oriented stream classes. These can be used to read and convert Unicode characters.
Conversion
Following example will showcase conversion of a Unicode String to UTF8 byte[] and UTF8 byte[] to Unicode byte[] using Reader and Writer classes.
Example
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.nio.charset.Charset;
import java.text.ParseException;
public class I18NTester {
public static void main(String[] args) throws ParseException, IOException {
String input = "This is a sample text" ;
InputStream inputStream = new ByteArrayInputStream(input.getBytes());
//get the UTF-8 data
Reader reader = new InputStreamReader(inputStream, Charset.forName("UTF-8"));
//convert UTF-8 to Unicode
int data = reader.read();
while(data != -1){
char theChar = (char) data;
System.out.print(theChar);
data = reader.read();
}
reader.close();
System.out.println();
//Convert Unicode to UTF-8 Bytes
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
Writer writer = new OutputStreamWriter(outputStream, Charset.forName("UTF-8"));
writer.write(input);
writer.close();
String out = new String(outputStream.toByteArray());
System.out.println(out);
}
}
Output
It will print the following result.
This is a sample text This is a sample text
Advertisements