Python中locale如何配置setlocale()的參數?
01-03
本人編程弱雞一枚,在擼Python的時候 碰到了一個問題,關於locale下的setlocale()函數配置報錯,報錯如圖所示:
該問題在stackoverflow中給出的提示是:可能本地locale中不包含該編碼,但是本地是含有L7中的編碼.
而 L6中的編碼 ,在執行cmd locale -a的時候,後面也是含有的:
既然如此,為何在執行 locale.setlocale 的時候就開始報錯了呢?
補充: 相關配置參數:
而且,使用win推薦的zh_CN依然報錯....
Windows的setlocale並不是很符合基本法(POSIX規範),你可以試試setlocale(LC_ALL, "chinese"),setlocale(LC_ALL, "english")。而C.UTF-8這樣的是POSIX規範的locale,Linux下可以用,Windows下不能這麼用。
這有篇資料寫的不錯:C標準庫的setlocale()用法筆記 - Leo Chin - 博客園
另外,Windows下不支持將locale設置為UTF-8,你可以死心了。
非常不建議使用setlocale來做多語言支持,永遠應該通過Unicode和encode/decode處理位元組到unicode轉換,內部邏輯使用和locale無關的數值,輸出結果的時候永遠使用當前locale。
推薦閱讀:
※你看好 Python 3 嗎?
※如何用python網路爬蟲求兩個城市間鐵路距離呢?
※python中如何理解裝飾器代碼?
※哪些庫是 Python2 獨有而 Python3 暫時不支持的?
※python進階中,關於買書的問題!?