Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

5.0 的无言问题



  • 我尝试把 4.x 开发的模块移植到 5.0,结果遇到了一个很无言的问题:

    我在视图(表单)定义文件使用了中文作为表单的标题,视图定义的 xml 文件使用的是 utf-8 编码,结果出现:

    binosvorm.py", line 1049, in fields_view_get
    doc = dom.minidom.parseString(result['arch'].encode('utf-8'))
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 54: ordinal not in range(128)

    查看代码:
    server/bin/osv/orm.py:
    1049: doc = dom.minidom.parseString(result['arch'].encode('utf-8'))

    我糊涂了,请熟悉 python 的同学出来科普一下 python 的字符串和 unicode 操作的相关知识



  • 我尝试把 4.x 开发的模块移植到 5.0,结果遇到了一个很无言的问题:

    我在视图(表单)定义文件使用了中文作为表单的标题,视图定义的 xml 文件使用的是 utf-8 编码,结果出现:

    binosvorm.py", line 1049, in fields_view_get
    doc = dom.minidom.parseString(result['arch'].encode('utf-8'))
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xe9 in position 54: ordinal not in range(128)

    查看代码:
    server/bin/osv/orm.py:
    1049: doc = dom.minidom.parseString(result['arch'].encode('utf-8'))

    我糊涂了,请熟悉 python 的同学出来科普一下 python 的字符串和 unicode 操作的相关知识



  • 为什么要用中文标题呢?用翻译功能不是可以实现么?
    虽然我个人喜欢中文,但是代码里还是不要出现中文的好,呵呵



  • 很多 MIS 都是中国特色的,没有国际化的必要



  • 最可恶的是 4.x 都支持的, 5.x 就不支持了



  • 在程序最开始加上

    -- coding: utf-8 --

    试试
    不过不是很明白
    doc = dom.minidom.parseString(result['arch'].encode('utf-8'))
    就是强制doc用utf8
    .encode('utf-8')就是说前面这个东西是utf8的



  • 你可以看看他实际出来的字符是什么模样的是不是有些很特别的东西在里面。
    我才郁闷呢不知道openerp用了那个库升级了界面如果用原来的库,会出现字符不认的现象。
    不过有个不是办法的办法就是直接装客户端而不是用源码运行还可以

    [[i] 本帖最后由 simon 于 2008-12-2 20:20 编辑 [/i]]



  • 最简单的办法是把你的xml文件用软件转为utf8编码不然就会出现这个错误,错误是说你的文件或者要打开的文件里面是ascii编码的所以不通过



  • 本身我的 xml 就是 utf-8 的,它又 encode("utf-8"),这应该是问题所在了




  • 管理员

    你的这个模块在v5上安装,到最后会出现“UnicodeEncode Error", 但实际上这个模块是安装成功的,可以使用。
    出现encode错误是因为,你的模块没有设置Access Rule。在V5的版本中对没有设置Access Rule的模块会有一个警告信息。因为在smshleper.py中的smshelper_message_template对象的_description是中文,当logger在记录前面提到的警告信息时,就出现了转码错误。

    这也是安装在V4中没问题而在V5中不行的原因。

    将server/bin/netsvc.py的242行左右的地方,将下面的代码[code] result = str(msg).strip().split('n')
    [/code]之前加上:[code] if isinstance(msg, unicode):
    msg = msg.encode(sys.getfilesystemencoding())
    [/code]试试。或将前面提到的_description中的说明改成英文。

    [[i] 本帖最后由 digitalsatori 于 2008-12-26 21:50 编辑 [/i]]



  • 果然是超级版主阿,水平就是不一样



  • 唉.... 这样的BUG, 怎么就会出现呢??

    类似的BUG,还存在多少哩?


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待