没想到Json文件保存编码会遇到如此多的坑,事情是这样的,一开始用记事本文件创建了一个json文件,并保存为data.json。

{
    "project": {
        "config": {
            "name": "上海五角场购物中心",
            "author": "xxxxxx项目部",
            "time": "2017-08-02 18:00:00",
            "data_source_app": "AutoCad",
            "data_source_app_version": "2020",
            "building_info": {},
            "extro_info": {}
        },
        "data": {
            "dwgs": [{
                    "id": 1,
                    "name": "一层",
                    "fileName": "一层过滤.dwg",
                    "path": "D:/CAD图块库/深化提资CAD/dwgs/一层过滤.dwg",
                    "description": "上海五角场购物中心一楼",
                    "time": "2021-07-02 18:00:00",
                    "thumbnail": "/pics/五角场_一层过滤.png"
                },
                {
                    "id": 2,
                    "name": "二层",
                    "fileName": "二层过滤.dwg",
                    "path": "D:/CAD图块库/深化提资CAD/dwgs/二层过滤.dwg",
                    "description": "上海五角场购物中心一楼",
                    "time": "2021-07-02 18:00:00",
                    "thumbnail": "/pics/五角场_二层过滤.png"
                }
            ],
            "extro_info": {}
        }
    }
}

注意此时的文件编码为ANSI

JSON遇到的坑_文件创建

 

 此时运行程序没错,但是在命令行或VSCode中显示不正确

Sketchup的Ruby控制台+中显示如下:

JSON遇到的坑_文件编码_02

 

 VSCode中显示如下

JSON遇到的坑_文件编码_03

 

 于是乎把文件另存为了UNICODE码

JSON遇到的坑_命令行_04

 

 此时在Ruby控制台+中显示出了错误

JSON遇到的坑_ruby_05

 

 而在VSCode中查看到的文件编码为UTF-16LE

JSON遇到的坑_json_06

 

 

 接下来把文件编码改为了UTF-8,以为应该没问题了

JSON遇到的坑_文件编码_07

 

此时Ruby控制台+出现下面的错误

JSON遇到的坑_文件创建_08

 

 而在VSCode中查看到的编码格式为UTF-8 with BOM

JSON遇到的坑_文件编码_09

 

 

终极解决方案:

在VSCode中点击选择编码后选择保存编码为UTF-8

JSON遇到的坑_文件创建_10

 

 

 一切都正常了