Java 是什么导致此ASCII字符成为问号?
我有一段Java代码,其中config.yaml应该使用自定义头生成,该头包含各种ASCII字符,例如ASCII-219。 当我编译插件并查看config.yml时,字符被问号替换。我已经研究了IntelliJ IDEA文件编码,它被设置为UTF8 我已经尝试将UTF-8与BOM一起使用Java 是什么导致此ASCII字符成为问号?,java,encoding,minecraft,Java,Encoding,Minecraft,我有一段Java代码,其中config.yaml应该使用自定义头生成,该头包含各种ASCII字符,例如ASCII-219。 当我编译插件并查看config.yml时,字符被问号替换。我已经研究了IntelliJ IDEA文件编码,它被设置为UTF8 我已经尝试将UTF-8与BOM一起使用 FileConfiguration config = main.plugin.getConfig(); getConfig().options().header(
FileConfiguration config = main.plugin.getConfig();
getConfig().options().header(
" █████▒▄▄▄ ██▓ ██▓ ▓█████ ███▄ █ ██████ █ ██ ██▀███ ██▒ █▓ ██▓ ██▒ █▓ ▒█████ ██▀███ " + "\n" +
" ▓██ ▒▒████▄ ▓██▒ ▓██▒ ▓█ ▀ ██ ▀█ █ ▒██ ▒ ██ ▓██▒▓██ ▒ ██▒▓██░ █▒▓██▒▓██░ █▒▒██▒ ██▒▓██ ▒ ██▒ " + "\n" +
" ▒████ ░▒██ ▀█▄ ▒██░ ▒██░ ▒███ ▓██ ▀█ ██▒░ ▓██▄ ▓██ ▒██░▓██ ░▄█ ▒ ▓██ █▒░▒██▒ ▓██ █▒░▒██░ ██▒▓██ ░▄█ ▒ " + "\n" +
" ░▓█▒ ░░██▄▄▄▄██ ▒██░ ▒██░ ▒▓█ ▄▓██▒ ▐▌██▒ ▒ ██▒▓▓█ ░██░▒██▀▀█▄ ▒██ █░░░██░ ▒██ █░░▒██ ██░▒██▀▀█▄ " + "\n" +
" ░▒█░ ▓█ ▓██▒░██████▒░██████▒░▒████▒██░ ▓██░▒██████▒▒▒▒█████▓ ░██▓ ▒██▒ ▒▀█░ ░██░ ▒▀█░ ░ ████▓▒░░██▓ ▒██▒ " + "\n" +
"▒ ░ ▒▒ ▓▒█░░ ▒░▓ ░░ ▒░▓ ░░░ ▒░ ░ ▒░ ▒ ▒ ▒ ▒▓▒ ▒ ░░▒▓▒ ▒ ▒ ░ ▒▓ ░▒▓░ ░ ▐░ ░▓ ░ ▐░ ░ ▒░▒░▒░ ░ ▒▓ ░▒▓░ " + "\n" +
"░ ▒ ▒▒ ░░ ░ ▒ ░░ ░ ▒ ░ ░ ░ ░ ░░ ░ ▒░░ ░▒ ░ ░░░▒░ ░ ░ ░▒ ░ ▒░ ░ ░░ ▒ ░ ░ ░░ ░ ▒ ▒░ ░▒ ░ ▒░ " + "\n" +
"░ ░ ░ ▒ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░░░ ░ ░ ░░ ░ ░░ ▒ ░ ░░ ░ ░ ░ ▒ ░░ ░ " + "\n" +
"░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ " + "\n" +
"░ ░ " + "\n" +
"Plugin BETA 1.0.0/ " + "\n" +
"FallenSurvivor is made by FendiTony777, all rights are reserved to him. " + "\n" +
"You can contact me from the discord link provided. " + "\n" +
"--------------------------------------------- " + "\n"
);```
您需要了解文件的字符编码,并确保处理链中的所有工具都正确使用该编码。如注释中所述,ASCII仅涵盖unicode代码点的7位子集(或者更确切地说,unicode被定义为包括0-127范围内的ASCII)。这些块图形字符不是ASCII 它还看起来像是将未定义为无缝工作的图示符组合在一起(这也在Wikipedia页面上有所说明)。空间图示符比块窄一点,完整块看起来比点画块高一点,但这可能并不重要,这取决于渲染时使用的字体 如果您无法控制FileConfiguration类,而FileConfiguration类可能不使用utf-8编码进行编写,那么您就有点运气不佳,除非config.yml的生成是一次性的。在这种情况下,您可以手动编辑生成的文件,并用正确的字符串替换错误编码的字符串
但是,您仍然需要确保读取yaml文件的函数正常工作并保留utf-8代码。如果配置文件生成和配置文件读取是由同一类完成的,则读取可能会出现类似的问题。您所说的“ASCII-219”是什么意思?ASCII字符仅在0到127之间。另外,我在你发布的内容中没有看到问号。0x219也是Û。您正在使用的框图形字符是