🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 杂项 本部分将收纳应用方面的补充说明,他们可能是难以归纳进以上架构或者是平日甚少使用,所以收纳于此部分 ## unicode-万国码 JSON支援显示Unicode,格式为: `\u####` `####`就是4个位的Unicode代码,具体请参考Unicode代码的[网页](http://www.unicode.org/charts/) 不过MC字库并不保证所有的Unicode都能正常显示 使用例子: ``` /tellraw @a {"text":"\u2622"} ``` ![38](https://box.kancloud.cn/13898725876c1b196f0ca9035a21e66d_648x18.png) ``` /tellraw @a {"text":"\u2622\u269B"} ``` ![39](https://box.kancloud.cn/89359766ccc4a58336192ece73176ce9_648x19.png) ## 转义 转义是JSON应用中十分重要的课题 转义是指,有时候为了能让系统正确配对双引号`"`(例如在引号部分内使用引号),我们需要用`\`标示里面的双引号,变成`\"` 比如需要输出`"Hello World"`,我使用了以下命令: ``` /tellraw @a {"text":""Hello World""} ``` 但由于配对的问题,标识`值`部分的引号和内容所需的引号配对了,系统无法正确识别命令,导致无法执行 JSON规定的转义方式为,将`"`转为`\"`,将`\`转为`\\` 正确的命令为: ``` /tellraw @a {"text":"\"Hello World\""} ``` ![49](https://box.kancloud.cn/763aebe8d3b825b5032d3ddf474c25f5_648x18.png) 这样我们便能告知系统,`"Hello World"`的引号和包围`值`的引号如何正确配对 --- 然后是需要更多转义的例子 例如我们需要修改以下命令: ``` /tellraw @a {"text":"Hello World","clickEvent":{"action":"run_command","value":"/tellraw @a {\"text\":\"Hello World\"}"}} ``` 这是一个包含了CE的`/tellraw`,点击会再次输出`Hello World` 如果我们需要修改成输出`"Hello World"`,我们便需要在已经转义一次的引号内再加入一对引号 按照正确的转义方式,命令将修改为: ``` /tellraw @a {"text":"Hello World","clickEvent":{"action":"run_command","value":"/tellraw @a {\"text\":\"\\\"Hello World\\\"\"}"}} ``` ![N1](https://box.kancloud.cn/803be4b9a1321af17e4d1020505cdfcd_648x35.png) 需要注意,因为第二次转义,`\`也需要被转义,所以正确的写法为`\\\"`而非`\\"`,三次转义为`\\\\\\\"`,如此类推 --- 最后需要提醒的一点是,并非一见到引号内的引号就需要额外转义多一次 而是需要小心分辨他们是否处于同一层次 例如我要输出`""Hello World""` 使用: ``` /tellraw @a {"text":"\"\\\"Hello World\\\"\""} ``` ![N3](https://box.kancloud.cn/0ecc10e1a7951bf9dcc68b832f40b7e2_648x18.png) 将会造成错误的输出 正确的写法应为: ``` /tellraw @a {"text":"\"\"Hello World\"\""} ``` ![N2](https://box.kancloud.cn/9502b353e8f91c0460fefd40e6331f6c_648x18.png) ## 与资源包的配合 有些地图把部分不常用的文字改为图片(没错,Minecraft里的文字是图片来的),然后用JSON来做到在聊天栏打印合成配方的特技。 当然,这需要牺牲,就是玩家如果输入那些字符就会变为物品。不过只要用生僻字的话一般还是没有问题的。