Red*_*one 6 java unicode utf-8 unicode-string
unicode在java中显示字符显示“?” 标志。例如,我试图打印“?”。其unicode编号为 U+0905,html 表示为“अ”。下面的代码打印“?” 而不是unicode性格。
char aa = '\u0905';
String myString = aa + " result" ;
System.out.println(myString); // displays "? result"
Run Code Online (Sandbox Code Playgroud)
有没有办法unicode直接从unicode自身显示字符而不使用unicode数字?IE ”?” 保存在文件中现在在jsp中显示文件。
Java定义了两种类型的流:字节流和字符流。
System.out.println()无法显示Unicode字符的主要原因是System.out.println()是一个字节流,只处理字符的低8位,即16位。
为了处理 Unicode 字符(16 位 Unicode 字符),您必须使用基于字符的流,即 PrintWriter。
PrintWriter 支持 print( ) 和 println( ) 方法。因此,您可以像在 System.out 中使用这些方法一样使用这些方法。
PrintWriter printWriter = new PrintWriter(System.out,true);
char aa = '\u0905';
printWriter.println("aa = " + aa);
Run Code Online (Sandbox Code Playgroud)
尝试使用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
Run Code Online (Sandbox Code Playgroud)