Java控制台打印日式颜文字/表情符号乱码问题求助
Java控制台打印颜文字乱码与转义错误解决方法
一、控制台乱码问题解决
颜文字属于Unicode字符集,控制台默认编码如果不是UTF-8,就会出现乱码。可以通过两种方式修复:
1. 修改控制台/IDE的编码设置
- 如果用IDEA:打开
File → Settings → Editor → File Encodings,把Global Encoding、Project Encoding、Default encoding for properties files全部设为UTF-8,控制台编码会自动同步。 - 如果用Windows命令提示符(cmd):打开cmd后输入命令
chcp 65001,切换控制台编码为UTF-8后再运行Java程序。
2. 代码层面强制指定输出编码
直接在代码里指定System.out使用UTF-8编码输出,摆脱系统默认编码的限制:
import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; public class Main { public static void main(String[] args) { PrintWriter utf8Out = new PrintWriter(new OutputStreamWriter(System.out, StandardCharsets.UTF_8), true); utf8Out.print("(。•́︿•̀。)"); } }
二、非法转义字符错误解决
你完全不需要用反斜杠转义颜文字里的任何符号——Java字符串中只有特定字符需要转义(比如双引号\"、反斜杠\\、换行符\n等)。你最初写的System.out.print("(。•́︿•̀。)");本身是合法代码,加反斜杠反而会触发非法转义错误,因为颜文字里的符号不属于Java规定的可转义字符。
内容的提问来源于stack exchange,提问作者Stel
相关产品推荐
相关产品推荐

