“?”打印而不是表情符号

问题描述 投票:0回答:1

在编码表情符号时,尽管使用utf-8,但它只输出“?”。

Visual Studio 代码,Java jdkv21。

代码片段:

System.out.print(boyName + ", will you be my boyfriend? ");
String response = scanner.nextLine();

switch (response.toLowerCase()) 
{
    case "yes":
        System.out.println("Yay! \uD83D\uDE0A"); 
        break;
    case "maybe":
        System.out.println("I'll wait for your decision! \uD83E\uDD14");
        break;
    case "no":
        System.out.println("\uD83D\uDE22"); 
        break;
    default:
        System.out.println("gulo mo, 3 na nga lang pagpipilian");
}
java emoji java-21
1个回答
0
投票

您遇到的问题似乎与控制台或终端的编码和输出设置有关,而不是 Java 代码本身。

我想你可以尝试以下步骤:

  1. 检查终端/控制台编码:确保您的终端或控制台支持 UTF-8 编码并配置为正确显示 Unicode 字符。某些终端可能默认未启用 UTF-8 编码。

  2. 更新终端/控制台设置:如果您使用的是 Visual Studio Code 的集成终端,请检查其设置以确保启用 UTF-8 编码。您可能需要调整终端的字体设置或编码设置以支持 Unicode 字符。

  3. 验证 Java 编码:确保您的 Java 源文件 (.java) 采用 UTF-8 编码。您可以在使用

    -encoding
    标志编译 Java 文件时显式指定编码:
    javac -encoding UTF-8 MyClass.java

  4. 控制台字体支持:终端使用的某些字体可能不完全支持 Unicode 字符,包括表情符号。尝试将终端使用的字体更改为具有更好 Unicode 支持的字体。

  5. 更新 Java 版本:确保您使用的是完全支持 Unicode 字符和表情符号的最新版本的 Java。旧版本在正确处理 Unicode 字符方面可能存在限制。

  6. 使用不同的终端进行测试:尝试在不同的终端或控制台中运行 Java 程序,看看问题是否仍然存在。某些终端可能比其他终端更好地处理 Unicode 字符。

© www.soinside.com 2019 - 2024. All rights reserved.