V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ccmao755
V2EX  ›  Flask

关于 flask 中输出中文 unicode

  •  
  •   ccmao755 · 2015-08-14 14:10:20 +08:00 · 12634 次点击
    这是一个创建于 3168 天前的主题,其中的信息可能已经有所发展或是发生改变。

    flask + pymmsql
    render_template 返回的是([‘中国’,123],[‘深圳’,234]) 这样2个list在一个tuple之中。 那么返回个template的时候(显示明细),我用a[0][0]本来想输出 中国,但是输出的是unicode字符。

    我在jinja2 用decode(utf-8)以及render_template也用decode('utf-8')都是显示的16进制的unicode显示,在console里可以 用print a[0][0] 显示正确的中文。

    请问大家都是如何处理的呢?谢谢! pymssql连接已用utf8连接,py文件也做了utf8的声明。

    10 条回复    2015-08-18 14:27:22 +08:00
    aiver
        1
    aiver  
       2015-08-14 15:26:55 +08:00
    这个和python的版本也有些关系,python3中默认的字符串格式就是unicode了,而python2里面字符串需要加上前缀u才是uincode字符串。如果楼主环境是python2,render_template返回的话在字符前面都加上前缀u,然后在template里面显示的时候,用a[0][0].decode('gbk')试试。
    mashpolo
        2
    mashpolo  
       2015-08-14 15:34:48 +08:00
    试试json模块的dumps方法
    hupeng
        3
    hupeng  
       2015-08-14 15:57:08 +08:00
    [u‘中国’,123],[u‘深圳’,234]
    awanabe
        4
    awanabe  
       2015-08-14 16:21:33 +08:00
    json.dumps(obj, ensure_ascii=False)

    试下
    huson
        5
    huson  
       2015-08-14 16:29:50 +08:00
    要加u
    xavierskip
        6
    xavierskip  
       2015-08-14 16:37:55 +08:00
    py文件里的中文字符都加上u吧,
    luzjoy
        7
    luzjoy  
       2015-08-14 17:07:33 +08:00
    html 文档的编码也改成utf-8
    ccmao755
        8
    ccmao755  
    OP
       2015-08-17 10:24:11 +08:00
    html 、 py 等都统一成 utf-8 的了。没有用 ajax ,实际就是直接 render 到模板。 decode gbk 后会显示乱码。在 list 前加 u 这个,因为是数据库直接返回的,我也看了是( unicode ) utf8 的返回值,所以不用加 u 。

    唉,凌乱了。
    ccmao755
        9
    ccmao755  
    OP
       2015-08-18 01:24:45 +08:00
    sql server 的问题。 done !
    ccmao755
        10
    ccmao755  
    OP
       2015-08-18 14:27:22 +08:00
    sql server 的 vchar 字符的问题,最后改成 nvchar 就没问题了。 凌乱!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3344 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 12:20 · PVG 20:20 · LAX 05:20 · JFK 08:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.