Python 板


LINE

※ 引述《Holocaust123 (奔跑的蜗牛)》之铭言: : A1. Python可能是把环境的locale当作自己执行时的locale : 自己执行时的locale会影响执行时的Character Encoding : 在Cygwin(Linux)环境下 : 使用者指定locale时可同时指定Character Encoding : 例如我在~/.bashrc中写 export LANG=zh_TW.UTF-8 : 表示locale为中文-台湾 Character Encoding为UTF-8 : Cygwin Python读取LANG的值当作执行Python时用的locale及Character Encoding : 於是可以正确印出UTF-8字元 但是 Cygwin 的环境变数要在 Cygwin 的 shell 下才有作用 而即使你直接在 cmd.exe 执行 Cygwin 的 Python 里面的 encoding 仍然不会遵从 cmd.exe 的 codepage 设定 而且结果与 Cygwin shell 中执行效果相同 (至少我的 Cygwin 版本如此, 不过我的有点旧了...) 我的猜测是, Cygwin 应该有特别设定过, 不过不知道是设定 Python 还是整个 shell 一个证据是在你的实验中, Cygwin 的 sys.stdout.encoding 是 None 这通常发生於把 stdout redirect 到一个档案的状况 如果是直接输出到 shell, 那无论如何 shell 总是会有个 encoding 才对 (我的版本会出现 'US-ASCII', 不过还是那句, 我的太旧了...) 对 Cygwin 不熟, 所以就没继续研究下去了 : 然後是Windows : 繁体中文版本的Windows预设locale是zh_TW : (可以透过 控制台>地区及语言选项>地区选项>标准及格式 来修改) : 与Linux不同的是 : 在Windows中一旦locale被指定 : Code Page(Character Encoding)似乎就定死了(这是我猜的 因为查不到改法) 其实用 chcp 就可以改了 也可以改成 UTF-8, code page 码是 65001 不过这样不够, 因为 Python 不认得 cp65001 是哪来的编码 详细可以看这个网页的内容(Stack Overflow 的讨论)http://goo.gl/qd4nY : 就是cp950(cp = code page) : Windows Python读取Windows的locale的值当作执行Python时用的locale及Charset : 於是就印不出UTF-8字元了 : 若我以上的猜测是对的 : 想用Windows Python在cmd.exe印出Unicode字元 : 就必须先让Python使用的Code Page是UTF-8才行 : 在Linux下export LANG=zh_TW.UTF-8就行了 : 但...Windows下要怎麽做呢?? 上面讲了一个方法 另一个方法是设 PYTHONIOENCODING 这个环境变数 参考 http://wp.me/p3U05-aC : 或者 : 有没有办法直接修改Windows Python的source : 来强制指定 locale-charset 为 zh_TW.UTF-8 呢? : A2. Python可能是把环境的locale当作自己执行时的locale : 自己执行时的locale会影响执行时的Character Encoding : 所以会影响 sys.stdout.encoding : A3. 不清楚 可能性太多了 : 总之大概是这种情况下不会 source ~/.bashrc 所以LANG是空的 : 所以sys.stdout.encoding也是空的 : (我觉得这个问题网路上一定有人问过 还在survey中...) : A4. 不清楚(这我超想知道的 拜托会的人教一下 orz) : 不知道我讲的对不对 有错还请多多指教 : 我真的很想知道正确答案... 结论:Windows sucks =p -- 「我最想要的同伴嘛,首先是要笑口常开,其次是我们能永远不会发生误会。 如果这些都能办到的话,嗯,如果他是世界上第一流的桥手,也还不错。」 -- 班尼多‧加罗素,前义大利蓝队成员 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.81.146
1F:→ kdjf:其实,XP是十年前的OS。 十年前的linux... 也没多好用XD 04/23 09:14
2F:→ kdjf:不过,encoding是很早就解决了啦 04/23 09:15







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP