【问题标题】:Curl - response with bad encoding reading a json卷曲 - 读取 json 编码错误的响应
【发布时间】:2021-07-08 08:05:54
【问题描述】:

我正在尝试使用命令提示符下的 Curl 命令从 nominatim 读取 json,所以我只是输入:

curl "https://nominatim.openstreetmap.org/search?q="Tokyo"&format=json"

但是日文字符的编码错误。这是回应:

[{"place_id":258676795,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"relation","osm_id":1543125,"boundingbox":["20.2145811","35.8984245","135.8536855","154.205541"],"lat":"35.6828387","lon":"139.7594549","display_name":"東京都, 日本","class":"boundary","type":"administrative","importance":0.7593311914925306,"icon":"https://nominatim.openstreetmap.org/ui/mapicons//poi_boundary_administrative.p.20.png"},{"place_id":20598104,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"node","osm_id":2149761647,"boundingbox":["35.6760912","35.6860912","139.7621861","139.7721861"],"lat":"35.6810912","lon":"139.7671861","display_name":"東京, Keiyo Street, 丸の内1, 丸の内, 千代田区, 東京都, 100-0005, 日本","class":"railway","type":"station","importance":0.5591218901586479,"icon":"https://nominatim.openstreetmap.org/ui/mapicons//transport_train_station2.p.20.png"},{"place_id":70003988,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"node","osm_id":6396868334,"boundingbox":["35.6727691","35.6827691","139.7596365","139.7696365"],"lat":"35.6777691","lon":"139.7646365","display_name":"東京, 鍛冶橋通り, 丸の内2, 丸の内, 千代田区, 東京都, 100-0005, 日本","class":"railway","type":"station","importance":0.5591218901586479,"icon":"https://nominatim.openstreetmap.org/ui/mapicons//transport_train_station2.p.20.png"},{"place_id":71190469,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"node","osm_id":6397207541,"boundingbox":["35.6771116","35.6871116","139.7606744","139.7706744"],"lat":"35.6821116","lon":"139.7656744","display_name":"東京, 丸の内1, 丸の内, 千代田区, 東京都, 100-0005, 日本","class":"railway","type":"station","importance":0.5591218901586479,"icon":"https://nominatim.openstreetmap.org/ui/mapicons//transport_train_station2.p.20.png"},{"place_id":259023488,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"relation","osm_id":5303898,"boundingbox":["35.632591","35.688161","139.517033","139.593089"],"lat":"35.660036","lon":"139.554815","display_name":"調布市, 東京都, 日本","class":"boundary","type":"administrative","importance":0.5022260781248801,"icon":"https://nominatim.openstreetmap.org/ui/mapicons//poi_boundary_administrative.p.20.png"},{"place_id":259078458,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"relation","osm_id":5301789,"boundingbox":["35.604698","35.657961","139.393498","139.4739366"],"lat":"35.637188","lon":"139.443503","display_name":"多摩市, 東京都, 日本","class":"boundary","type":"administrative","importance":0.4888462520106494,"icon":"https://nominatim.openstreetmap.org/ui/mapicons//poi_boundary_administrative.p.20.png"},{"place_id":258856136,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"relation","osm_id":1759475,"boundingbox":["35.618431","35.650744","139.561968","139.594114"],"lat":"35.634023","lon":"139.575977","display_name":"狛江市, 東京都, 日本","class":"boundary","type":"administrative","importance":0.470967951474371,"icon":"https://nominatim.openstreetmap.org/ui/mapicons//poi_boundary_administrative.p.20.png"},{"place_id":46725894,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"node","osm_id":3728940234,"boundingbox":["-5.8168777","-5.7768777","142.8181612","142.8581612"],"lat":"-5.7968777","lon":"142.8381612","display_name":"Tokyo, Hayapuga Rural LLG, Tari-Pori District, Hela, Highlands Region, Papua Niugini","class":"place","type":"hamlet","importance":0.36,"icon":"https://nominatim.openstreetmap.org/ui/mapicons//poi_place_village.p.20.png"},{"place_id":94556779,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"way","osm_id":23921332,"boundingbox":["14.6744911","14.6761699","121.0951871","121.097869"],"lat":"14.6754461","lon":"121.0967373","display_name":"Tokyo, Batasan Hills, 2nd District, Quezon City, Eastern Manila District, Metro Manila, 2, Mindanao","class":"highway","type":"residential","importance":0.21},{"place_id":146821334,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"way","osm_id":226371613,"boundingbox":["7.0842449","7.0880334","125.5133359","125.5133699"],"lat":"7.0861394","lon":"125.5133561","display_name":"Tokyo, Samulco Village, Cawa-Cawa, Santo Niño, Davao City, Davao Region, 8022, Mindanao","class":"highway","type":"residential","importance":0.21}]

所以我想知道是否有办法正确可视化这些字符(可能包括 curl 字符串中的正确参数。) 提前谢谢你

【问题讨论】:

    标签: curl encoding utf-8 ascii decode


    【解决方案1】:

    您是否使用 linux 命令行工作?

    在 Linux 没有 GUI/X-Windows 我看不到中文字符。在 vi 或 vim 或命令级别。如果我将 curl 输出重定向到一个文件,并用浏览器打开它,那么我会看到这些字符。 您可以使用 curl 设置字符集,但在这种情况下不会解决此问题。 示例:

    curl -H "Content-Type: application/json;charset=UTF-8" ...

    在 Linux 带有 GUI/X-Windows 中,我可以在 vi 等中看到中文字符。

    在这两种情况下,字符集都是 UTF-8 并且可以显示中文字符。

    【讨论】:

    • 不,我在 Windows 上工作。我知道,在reqbin.com/curl 上运行代码我正确地看到了结果,问题是来自 Windows 命令提示符控制台的响应,所以我想 Windows 有不同的编码,但我不知道是否可以在控制台上“打印”结果之前更改 json 响应的字符集...
    • 在windows shell中激活一个汉字代码页:chcp 936。然后运行你的curl命令。你会在 shell 中看到汉字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多