我遇到一些JavaUnicode输出问题。我试过多种方法,我知道可以看到unicode字符,但它们前面有一个带问号的菱形。
这是我用记事本创建的测试文件:
以下是使用notepad++的文件:
以下是我的cmd.exe输出:
cmd字体设置:
跑 cmd /U
,仍然没有字符(发现这里使用了不同的字体[consolas],这就是为什么它的问号在方框中):
windows版本:
我也尝试了powershell,它似乎认为它是一种不同的编码:
我写了一个小的java程序,可以打印unicode,但是在某些情况下它前面有一个额外的字符。
public class App {
private static final Logger logger = LogManager.getLogger(App.class);
public static void main(String[] args) {
Charset utf8Charset = Charset.forName("UTF-8");
Charset defaultCharset = Charset.defaultCharset();
System.out.println(defaultCharset);
System.out.println("A ?");
System.out.println("B ✔ ");
System.out.println("C ❌");
}
}
然后用以下标志运行这个java应用程序
java -Dfile.encoding=UTF-8
以下是输出:
为什么我的java应用程序可以打印unicode而不能直接打印cmd.exe?
java如何添加cmd.exe不知道的字符?
我还可以测试/尝试/更改什么以使unicode表现更好。
笔记:
我读到露西达控制台应该工作;我试过所有的字体, NSimSun
显示了x和复选标记,但没有表情符号。不过,这种字体对我来说有点难。
当我在word中打开txt文件时,如果我选择了所有文本并将其设置为consolas或lucida console,它似乎会将emojis更改为segoe ui,因此可能字体不支持它-尽管我看到其他帖子建议lucida console应该工作?
暂无答案!
目前还没有任何答案,快来回答吧!