[英]Print unicode character in java
在java中顯示unicode
字符顯示“?” 符號。 例如,我嘗試打印“अ”。 它的unicode
編號是U+0905,html表示是“अ”。 下面的代碼打印“?” 而不是unicode
字符。
char aa = '\u0905';
String myString = aa + " result" ;
System.out.println(myString); // displays "? result"
有沒有辦法直接從unicode
本身顯示unicode
字符而不使用unicode
數字? 即“अ”保存在文件中,現在顯示 jsp 中的文件。
Java 定義了兩種類型的流,字節和字符。
System.out.println() 不能顯示Unicode 字符的主要原因是System.out.println() 是一個字節流,只處理16 位字符的低8 位。
為了處理 Unicode 字符(16 位 Unicode 字符),您必須使用基於字符的流,即 PrintWriter。
PrintWriter 支持print() 和println() 方法。 因此,您可以像使用 System.out 一樣使用這些方法。
PrintWriter printWriter = new PrintWriter(System.out,true);
char aa = '\u0905';
printWriter.println("aa = " + aa);
嘗試使用 utf8 字符集 -
Charset utf8 = Charset.forName("UTF-8");
Charset def = Charset.defaultCharset();
String charToPrint = "u0905";
byte[] bytes = charToPrint.getBytes("UTF-8");
String message = new String(bytes , def.name());
PrintStream printStream = new PrintStream(System.out, true, utf8.name());
printStream.println(message); // should print your character
您的myString
變量包含完全正確的值。 問題必須是System.out.println(myString)
的輸出,它必須將一些字節發送到某些輸出以顯示您想要查看的字形。
System.out
是使用“平台默認編碼”將字符轉換為字節序列的 PrintStream - 也許您的平台不支持該字符。 例如,在我在德國的 Windows 7 計算機上,默認編碼是 CP1252,並且此編碼中沒有與您的字符對應的字節序列。
或者也許編碼是正確的,但只是從字符創建圖形字形的字體沒有那個字符。
如果您將輸出發送到 Windows CMD.EXE 窗口,那么可能這兩個原因都適用。
但請放心,您的字符串是正確的,如果您將其發送到可以處理它的目的地(例如 Swing JTextField),它將正確顯示。
Unicode 是用於打印任何字符或符號的唯一代碼。
您可以使用來自 --> https://unicode-table.com/en/ 的 unicode
下面是在 Java 中打印符號的示例。
package Basics;
/**
*
* @author shelc
*/
public class StringUnicode {
public static void main(String[] args) {
String var1 = "Cyntia";
String var2 = new String(" is my daughter!");
System.out.println(var1 + " \u263A" + var2);
//printing heart using unicode
System.out.println("Hello World \u2665");
}
}
******************************************************************
OUTPUT-->
Cyntia ☺ is my daughter!
Hello World ♥
我在 Eclipse 中遇到了同樣的問題。 我通過將控制台的編碼格式從 ISO-8859-1 切換到 UTF-8 解決了我的問題。 您可以在 Run/Run Configurations/Common 菜單中進行。
https://eclipsesource.com/blogs/2013/02/21/pro-tip-unicode-characters-in-the-eclipse-console/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.