Java中Unicode码u2122字符TM程序中无法在CMD上显示问题

今天我在看Java字符串一节时,看到了"\u2121"是字符TM的Unicode码,本来以为该字符很容易就能输出显示,结果只在
Windows系统命令行中得到一个“?”,我查找了资料,分析了一下原因,觉得挺有意思,就写出来和大家分享一下。

我是在命令行中编译运行时,遇到了这个问题,运行结果“?”,运行结果见图1。程序源代码如下:
public class Test
{
public static void main(String[] args)
{
System.out.println("\u2122");
}

}


图1
分析原因:
1)文件编码格式

我的编辑器默认将.java文件保存为ANSI格式编码,见图2。


图2

我将文件编码格式由默认保存的ANSI格式编码转为UTF-8格式编码,重新编译出错,编译器识别错误,见图3


图3

我将文件编码格式转为UTF-8无BOM格式编码,编译成功,程序能运行,结果在CMD中仍是显示“?”,见图4。


图4
2)Windows系统CMD无法识别Unicode

在CMD框上右键点击“属性”,点击“选项”,我们可以在下面找到结果,见图5。


图5
windows自带的命令行CMD支持ANSI,不支持UTF-8,因此CMD无法识别Unicode码\u2122,就显示了一个“?”。

以上是我对该问题的分析和解答,仅供参考,欢迎评论。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值