本帖最后由 z1224748848 于 2019-7-13 08:41 编辑 


在写语言配置文件的时候遇到了这个问题。
复制代码
这一行一直出问题,尝试将语言配置写到config.yml中,但是这样config的读取也遇到问题了(在这么做之前并没有出现问题)。
核心是KCauldron 1.7.10,配置文件编码是GB2312,尝试过UTF-8,但是这样会说遇到不允许的字符,然后还是无法读取。
通常遇到这个“遇到不允许的字符”我转码成ANSI(GB2312)后就没事了,但是这次就不停报错导致无法正常使用。
尤其是convertMapsToSections这个方法(点名批评)
希望各位大佬能教教我怎么解决,或者对于读取配置文件更好的方案。
谢谢ov o


在写语言配置文件的时候遇到了这个问题。
- FileConfiguration data = YamlConfiguration.loadConfiguration(dataFile);
这一行一直出问题,尝试将语言配置写到config.yml中,但是这样config的读取也遇到问题了(在这么做之前并没有出现问题)。
核心是KCauldron 1.7.10,配置文件编码是GB2312,尝试过UTF-8,但是这样会说遇到不允许的字符,然后还是无法读取。
通常遇到这个“遇到不允许的字符”我转码成ANSI(GB2312)后就没事了,但是这次就不停报错导致无法正常使用。
尤其是convertMapsToSections这个方法
希望各位大佬能教教我怎么解决,或者对于读取配置文件更好的方案。
谢谢ov o
 本帖最后由 a1294790523 于 2019-7-12 01:42 编辑 
emmm
我是用path作中转的。。。这可能是最糟糕的读取方式了
复制代码
这个读取可能是你的文件有问题
可以试试直接用readFromString方法看看有没有异常
这个是yaml的检查器,你也可以试试:http://yamllint.com
1.7.10的话默认是按照你的系统编码来的
1.12是强制UTF-8,中间不太清楚
emmm
我是用path作中转的。。。这可能是最糟糕的读取方式了
 
- Path langFile = getPlugin().getDataFolder().toPath().resolve("message.lang");
 
-         if (!langFile.toFile().exists()) {
 
-             getPlugin().saveResource("message.lang", false);
 
-         }
 
这个读取可能是你的文件有问题
可以试试直接用readFromString方法看看有没有异常
这个是yaml的检查器,你也可以试试:http://yamllint.com
1.7.10的话默认是按照你的系统编码来的
1.12是强制UTF-8,中间不太清楚
 本帖最后由 小星啊啊啊 于 2019-7-12 14:37 编辑 
看样子是配置文件yaml格式不对或者有什么不能出现的值吧 可以发下配置文件么
看样子是配置文件yaml格式不对或者有什么不能出现的值吧 可以发下配置文件么
小星啊啊啊 发表于 2019-7-12 14:32
看样子是配置文件yaml格式不对或者有什么不能出现的值吧 可以发下配置文件么 ...
- Plugin:
 
-   Prefix: "&9[&bHungu &6&l魂骨&9] "
 
-   INFO: "&a&l>> "
 
-   ERROR: "&e&l>> "
 
-   WARN: "&c&l>> "
 
-   NoPermission: "&7您没有权限这么做. :("
 
-   NotPlayer: "&7此操作仅玩家可执行."
 
- Command:
 
-   Success:
 
-     Inlay:
 
-       Message: "&7成功镶嵌魂骨 &a%hungu%&7."
 
-       Broadcast: "&7恭喜玩家 &a%player% &7成功为 &b%item% &7镶嵌上 &c%hungu%&7!"
 
-     Unload:
 
-       Message: "&7成功拆卸魂骨 &c%hungu%&7."
 
-       Broadcast: "&7恭喜玩家 &a%player% &7成功将 &c%hungu% &7从 &b%item% &7上拆卸!"
 
-   Invalid:
 
-     Item:
 
-       Amount: "&7将要进行镶嵌的目标装备数量必须为 &a1&7."
 
-       Empty: "&7该装备上未镶嵌指定魂骨."
 
-       ReachLimit: "&7目标装备已达到最大镶嵌限制&8(&c%limit%&8)&7."
 
-     Hungu:
 
-       Null: "&7目标魂骨位&8(快捷栏第 &c9 &8格)&7为空或目标魂骨无效."
 
-       InvalidID: "&7指定魂骨ID无效."
 
-   Cost:
 
-     NotEnough: "&7您的账户余额&8(&a%money%&8)&7不足以进行一次镶嵌&8(&c%cost%&8)&7."
 
- Success: "&7支付成功! 花费 &c%cost% &7进行一次镶嵌, 当前账户余额 &a%money%&7."
Null: "&7目标魂骨位&8(快捷栏第 &c9 &8格)&7为空或目标魂骨无效."
这里键为Null了 emmm 你上面哪个截图 也显示了 Null被替换为了~
之前我也因为这个被坑过 整了好久 emm
吧null替换为别的键吧 不要用Null什么的来做key!
