V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yangzh
V2EX  ›  问与答

python 程序,在开发机上面没有编码问题,在 vps 上有编码问题,怎么破?

  •  
  •   yangzh · 2013-09-02 22:33:00 +08:00 · 2336 次点击
    这是一个创建于 3888 天前的主题,其中的信息可能已经有所发展或是发生改变。
    python flask 程序。

    开发机和 vps 都使用了同样的 python 2.7,而且,依赖什么的都一样。

    在开发机上运行,一切正常。

    网站搬到 vps 上,同样的位置会出现

    UnicodeEncodeError: 'ascii' codec can't encode character u'\u6211' in position 20: ordinal not in range(128)

    有没有大神提供一些 debug 的思路?
    第 1 条附言  ·  2013-09-02 23:07:09 +08:00
    搞定了。居然是机器的 locale 问题。
    我的开发机的 locale 是 en_US.UTF-8,vps 上是 zh_CN.UTF-8,把 vps 上的 locale 改为 en 就可以运行了!
    5 条回复    1970-01-01 08:00:00 +08:00
    xunyu
        1
    xunyu  
       2013-09-02 22:47:56 +08:00   ❤️ 1
    是加了中文引起的吧,开发机是不是windows环境,在字符串后面加上encode('utf-8') 试试
    iloahz
        2
    iloahz  
       2013-09-02 22:49:35 +08:00   ❤️ 1
    看看数据库的编码吧
    yangzh
        3
    yangzh  
    OP
       2013-09-02 22:56:40 +08:00
    @xunyu @iloahz

    是中文引起的,也就只有中文这么惨了。但是在开发机为什么没有这个问题呢??!!
    aoyoo
        4
    aoyoo  
       2013-09-02 23:06:58 +08:00   ❤️ 1
    @yangzh 开发机的默认编码和vps不一样吧
    yangzh
        5
    yangzh  
    OP
       2013-09-02 23:08:45 +08:00
    @aoyoo
    @xunyu

    搞定了。居然是机器的 locale 问题。
    我的开发机的 locale 是 en_US.UTF-8,vps 上是 zh_CN.UTF-8,把 vps 上的 locale 改为 en 就可以运行了!

    @iloahz

    大神!一眼就看穿了!我从来想不到是 locale 的问题。。。我还重装了一次 python。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3538 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 04:58 · PVG 12:58 · LAX 21:58 · JFK 00:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.