天天看點

JSON遇到的坑

沒想到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遇到的坑

 VSCode中顯示如下

JSON遇到的坑

 于是乎把檔案另存為了UNICODE碼

JSON遇到的坑

 此時在Ruby控制台+中顯示出了錯誤

JSON遇到的坑

 而在VSCode中檢視到的檔案編碼為UTF-16LE

JSON遇到的坑

 接下來把檔案編碼改為了UTF-8,以為應該沒問題了

JSON遇到的坑

此時Ruby控制台+出現下面的錯誤

JSON遇到的坑

 而在VSCode中檢視到的編碼格式為UTF-8 with BOM

JSON遇到的坑

終極解決方案:

在VSCode中點選選擇編碼後選擇儲存編碼為UTF-8

JSON遇到的坑
下一篇: nginx開啟ssl