yangzh
V2EX  ›  问与答

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

  •  
  •   yangzh · Sep 2, 2013 · 3001 views
    This topic created in 4706 days ago, the information mentioned may be changed or developed.
    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 的思路?
    Supplement 1  ·  Sep 2, 2013
    搞定了。居然是机器的 locale 问题。
    我的开发机的 locale 是 en_US.UTF-8,vps 上是 zh_CN.UTF-8,把 vps 上的 locale 改为 en 就可以运行了!
    5 replies    1970-01-01 08:00:00 +08:00
    xunyu
        1
    xunyu  
       Sep 2, 2013   ❤️ 1
    是加了中文引起的吧,开发机是不是windows环境,在字符串后面加上encode('utf-8') 试试
    iloahz
        2
    iloahz  
       Sep 2, 2013   ❤️ 1
    看看数据库的编码吧
    yangzh
        3
    yangzh  
    OP
       Sep 2, 2013
    @xunyu @iloahz

    是中文引起的,也就只有中文这么惨了。但是在开发机为什么没有这个问题呢??!!
    aoyoo
        4
    aoyoo  
       Sep 2, 2013   ❤️ 1
    @yangzh 开发机的默认编码和vps不一样吧
    yangzh
        5
    yangzh  
    OP
       Sep 2, 2013
    @aoyoo
    @xunyu

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

    @iloahz

    大神!一眼就看穿了!我从来想不到是 locale 的问题。。。我还重装了一次 python。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3087 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 13:24 · PVG 21:24 · LAX 06:24 · JFK 09:24
    ♥ Do have faith in what you're doing.