# 杂项
本部分将收纳应用方面的补充说明,他们可能是难以归纳进以上架构或者是平日甚少使用,所以收纳于此部分
## 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来做到在聊天栏打印合成配方的特技。
当然,这需要牺牲,就是玩家如果输入那些字符就会变为物品。不过只要用生僻字的话一般还是没有问题的。