2012年5月30日 星期三

[python] json 與中文

現場狀況是這樣的,在 json 編碼中,文字部份一定要 utf-8,大家都很清楚了,如果想搞別的編碼,就自己 escape,這種作法算偷吃步。在 python 的 json 模組裡面,算是很貼心(還是很雞婆?),預設就是幫大家把文字都 escape 了。當然使用 ascii 的人都不會有感覺(我想大家也很無奈)。

在 json.dump 裡面,有預設一個 ensure_ascii=True,就是強迫文字 escape 的選項。如果沒去動他的話,以下是出現的結果:

"\u53f0\u6ce5"

如果你確定你的文字是 utf-8,可設定成 ensure_ascii=False,像是:

id_name[stockid].decode('cp950').encode('utf8')

那結果就會是:

"台泥"

這樣就很清楚了。

只是,我光看 escape 完的字串,感覺像是 unicode 編碼而不是 utf-8 編碼耶…。是 json 故意又轉成 unicode 再 escape 的嗎?

沒有留言:

張貼留言