public void print(boolean nextLine, int delayInt, String load) throws UnsupportedEncodingException {
PrintStream p = new PrintStream(System.out, true,"UTF-8");
for(int x = 0; x < load.length(); x++ ){
p.print(load.charAt(x));
try{
Thread.sleep(delayInt);
}catch (Exception ex){
ex.printStackTrace();
}
}
if(nextLine)
System.out.println();
}
好吧,以上是一种打印String中每个字符的方法,我使用的是PrintStream,因为我感觉这将允许我在ConEmu中编译和执行Java程序时使用所有Unicode字符(我使用的是代替CMD @ Windows)
i.print(true, 50,"\n" +
"\n" +
"▓█████▄ ██▓ ██████ ▄████▄ ▒█████ ██▒ █▓ ▓█████ ██▀███ \n" +
"▒██▀ ██▌ ▓██▒ ▒██ ▒ ▒██▀ ▀█ ▒██▒ ██▒ ▓██░ █▒ ▓█ ▀ ▓██ ▒ ██▒ \n" +
"░██ █▌ ▒██▒ ░ ▓██▄ ▒▓█ ▄ ▒██░ ██▒ ▓██ █▒░ ▒███ ▓██ ░▄█ ▒ \n" +
"░▓█▄ ▌ ░██░ ▒ ██▒ ▒▓▓▄ ▄██▒ ▒██ ██░ ▒██ █░░ ▒▓█ ▄ ▒██▀▀█▄ \n" +
"░▒████▓ ░██░ ▒██████▒▒ ▒ ▓███▀ ░ ░ ████▓▒░ ▒▀█░ ░▒████▒ ░██▓ ▒██▒ \n" +
" ▒▒▓ ▒ ░▓ ▒ ▒▓▒ ▒ ░ ░ ░▒ ▒ ░ ░ ▒░▒░▒░ ░ ▐░ ░░ ▒░ ░ ░ ▒▓ ░▒▓░ \n" +
" ░ ▒ ▒ ▒ ░ ░ ░▒ ░ ░ ░ ▒ ░ ▒ ▒░ ░ ░░ ░ ░ ░ ░▒ ░ ▒░ \n" +
" ░ ░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ ░ ▒ ░░ ░ ░░ ░ \n" +
" ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ \n" +
" ░ ░ ░ \n" +
"\n"
);
i.print(true, 2, "\n" +
"\n" +
" ▄█ ▄████████ \n" +
"███ ███ ███ \n" +
"███▌ ███ ███ \n" +
"███▌ ███ ███ \n" +
"███▌ ▀███████████ \n" +
"███ ███ ███ \n" +
"███ ███ ███ \n" +
"█▀ ███ █▀ \n" +
" \n" +
" ▄█ ▄█ ▄█ ▀█████████▄ ▄████████ ▄█ ▄████████ ▄█ ▄█▄ ▄█ ▄█ ▄█ \n" +
"███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▄███▀ ███ ███ ███ \n" +
"███▌ ███▌ ███▌ ███ ███ ███ ███ ███▌ ███ █▀ ███▐██▀ ███▌ ███▌ ███▌ \n" +
"███▌ ███▌ ███▌ ▄███▄▄▄██▀ ▄███▄▄▄▄██▀ ███▌ ███ ▄█████▀ ███▌ ███▌ ███▌ \n" +
"███▌ ███▌ ███▌ ▀▀███▀▀▀██▄ ▀▀███▀▀▀▀▀ ███▌ ███ ▀▀█████▄ ███▌ ███▌ ███▌ \n" +
"███ ███ ███ ███ ██▄ ▀███████████ ███ ███ █▄ ███▐██▄ ███ ███ ███ \n" +
"███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▀███▄ ███ ███ ███ \n" +
"█▀ █▀ █▀ ▄█████████▀ ███ ███ █▀ ████████▀ ███ ▀█▀ █▀ █▀ █▀ \n" +
" ███ ███ ▀ \n" +
" ▄█ ▄█ ▄█ ▀█████████▄ ▄████████ ▄████████ ▄████████ ▄█ ▄█▄ ▄████████ ▄████████ ▄█ ▄█ ▄█ \n" +
"███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▄███▀ ███ ███ ███ ███ ███ ███ ███ \n" +
"███▌ ███▌ ███▌ ███ ███ ███ ███ ███ █▀ ███ ███ ███▐██▀ ███ █▀ ███ ███ ███▌ ███▌ ███▌ \n" +
"███▌ ███▌ ███▌ ▄███▄▄▄██▀ ▄███▄▄▄▄██▀ ▄███▄▄▄ ███ ███ ▄█████▀ ▄███▄▄▄ ▄███▄▄▄▄██▀ ███▌ ███▌ ███▌ \n" +
"███▌ ███▌ ███▌ ▀▀███▀▀▀██▄ ▀▀███▀▀▀▀▀ ▀▀███▀▀▀ ▀███████████ ▀▀█████▄ ▀▀███▀▀▀ ▀▀███▀▀▀▀▀ ███▌ ███▌ ███▌ \n" +
"███ ███ ███ ███ ██▄ ▀███████████ ███ █▄ ███ ███ ███▐██▄ ███ █▄ ▀███████████ ███ ███ ███ \n" +
"███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ▀███▄ ███ ███ ███ ███ ███ ███ ███ \n" +
"█▀ █▀ █▀ ▄█████████▀ ███ ███ ██████████ ███ █▀ ███ ▀█▀ ██████████ ███ ███ █▀ █▀ █▀ \n" +
" ███ ███ ▀ ███ ███ \n" +
" ▄█ ▄█ ▄█ ▄████████ ▄████████ ████████▄ ███ █▄ ▄████████ ▄█ ▄█ ▄█ ▄█ \n" +
"███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ \n" +
"███▌ ███▌ ███▌ ███ █▀ ███ █▀ ███ ███ ███ ███ ███ █▀ ███ ███▌ ███▌ ███▌ \n" +
"███▌ ███▌ ███▌ ███ ▄███▄▄▄ ███ ███ ███ ███ ▄███▄▄▄ ███ ███▌ ███▌ ███▌ \n" +
"███▌ ███▌ ███▌ ▀███████████ ▀▀███▀▀▀ ███ ███ ███ ███ ▀▀███▀▀▀ ███ ███▌ ███▌ ███▌ \n" +
"███ ███ ███ ███ ███ █▄ ███ ███ ███ ███ ███ █▄ ███ ███ ███ ███ \n" +
"███ ███ ███ ▄█ ███ ███ ███ ███ ▀ ███ ███ ███ ███ ███ ███▌ ▄ ███ ███ ███ \n" +
"█▀ █▀ █▀ ▄████████▀ ██████████ ▀██████▀▄█ ████████▀ ██████████ █████▄▄██ █▀ █▀ █▀ \n" +
" ▀ \n" +
" ▄█ \n" +
"███ \n" +
"███▌ \n" +
"███▌ \n" +
"███▌ \n" +
"███ \n" +
"███ \n" +
"█▀ \n" +
" \n" +
"\n" +
" \n");
但是,它确实可以在IDE上运行,但是在ConEmu上却显示, 我已经检查了解决方案“ testing.java:50:错误:不可映射字符(0x90)用于编码Windows-1252”,但它们仅用于当我具有'\ uXXXX'字符代码时,在这种情况下,我不会这样做我使用了在线ASCII Art Generator。 ASCII ART Generator which I have used
答案 0 :(得分:1)
UTF-8(UTF8)
在Windows上,与Unix不同,控制台本身不是“字节”流,而是一个单元格电子表格,每个电子表格包含一个UTF-16字符和一个color属性。
这意味着,如果您的应用程序使用单字节或多字节字符集(即ANSI,OEM,UTF-8和许多其他字符集)产生输出,则Windows将根据您选择的活动代码页自动将该输出转换为UTF-16。控制台(从控制台命令提示符处运行chcp以检查您的活动代码页)。
如果要使用UTF-8编码,则必须选择UTF-8作为活动控制台代码页。只需运行chcp 65001命令即可。您可以从shell提示符中调用此命令,也可以在ConEmu任务内容中的shell之前运行它。当然,您的应用程序必须能够使用UTF-8输出数据。请参阅您的应用程序手册。
只需输入您的ConEmu终端,您就可以看到UTF-8内容:
chcp 65001
还必须稍微修改源代码并将其保存为UTF-8文件:
public void print(boolean nextLine, int delayInt, String load) throws UnsupportedEncodingException {
for(int x = 0; x < load.length(); x++ ){
// Use the regular System.out.print here to output chars!
System.out.print(load.charAt(x));
try{
Thread.sleep(delayInt);
}catch (Exception ex){
ex.printStackTrace();
}
}
if(nextLine)
System.out.println();
}
编译运行脚本:
chcp 65001
java test