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

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

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

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

PosBox模块通过树莓派的硬件盒子打印出来的中文出现乱码



  • 最近一直在捣鼓树莓派的posbox,非常不错,唯一的问题就是。。。打印出来的中文乱码啊 ,同志们有研究过这个的没有,求指点~~~
    不是本地打印的那个哦,本地没问题,但是通过树莓派打印就不行,中文出现一堆的“北北北”这样的乱码字符,查看官方文档说ESCOP打印指令暂时还不支持中文,崩溃啊~~~



  • 最近一直在捣鼓树莓派的posbox,非常不错,唯一的问题就是。。。打印出来的中文乱码啊 ,同志们有研究过这个的没有,求指点~~~
    不是本地打印的那个哦,本地没问题,但是通过树莓派打印就不行,中文出现一堆的“北北北”这样的乱码字符,查看官方文档说ESCOP打印指令暂时还不支持中文,崩溃啊~~~



  • 在escpos模块下的constants.py文件中第93行(附近)添加下面一行
    [code]TXT_ENC_PC936 ='\x1C\x21\x00'[/code]
    然后在escpos.py文件的第813行附近添加下面一行:
    [code] 'cp936': TXT_ENC_PC936[/code]
    最后,在escpos.py文件中的第838行注释掉原来一行附近添加一行:
    [code]#encoding = 'cp437'
            encoding = 'cp936'[/code]

    即,在constants.py文件中添加对中文的编码支持,蓝后在escpos.py文件中引用新添加的encoding,最后的encode_char看起来大概是这个样子的:
    [code]def encode_char(char): 
                """
                Encodes a single utf-8 character into a sequence of
                esc-pos code page change instructions and character declarations
                """
                char_utf8 = char.encode('utf-8')
                encoded  = ''
                encoding = self.encoding # we reuse the last encoding to prevent code page switches at every character
                encodings = {
                        # TODO use ordering to prevent useless switches
                        # TODO Support other encodings not natively supported by python ( Thai, Khazakh, Kanjis )
                        'cp936': TXT_ENC_PC936,<-----新加的
                        'cp437': TXT_ENC_PC437,
                        'cp850': TXT_ENC_PC850,
                        'cp852': TXT_ENC_PC852,
                        'cp857': TXT_ENC_PC857,
                        'cp858': TXT_ENC_PC858,
                        'cp860': TXT_ENC_PC860,
                        'cp863': TXT_ENC_PC863,
                        'cp865': TXT_ENC_PC865,
                        'cp866': TXT_ENC_PC866,
                        'cp862': TXT_ENC_PC862,
                        'cp720': TXT_ENC_PC720,
                        'iso8859_2': TXT_ENC_8859_2,
                        'iso8859_7': TXT_ENC_8859_7,
                        'iso8859_9': TXT_ENC_8859_9,
                        'cp1254'  : TXT_ENC_WPC1254,
                        'cp1255'  : TXT_ENC_WPC1255,
                        'cp1256'  : TXT_ENC_WPC1256,
                        'cp1257'  : TXT_ENC_WPC1257,
                        'cp1258'  : TXT_ENC_WPC1258,
                        'katakana' : TXT_ENC_KATAKANA,
                }
                remaining = copy.copy(encodings)

                if not encoding :
                    #encoding = 'cp437' <----注释掉
                    encoding = 'cp936'
              ……
              [/code]

    然后再重启服务,你就会发现中文好使了。
    Good luck!



  • 赞, 就是给 escpos 添加 cp936 编码 的支持吧?

    看整理一下 提到官网github 好了...
    谢谢 贡献...



  • https://github.com/fvdsn/py-xml-escpos/pull/5/files

    已提交给 py-xml-escpos 不知道官网什么时候能合并



  • 直接提给Odoo官方不行么,我看他们都改了escpos的文件



  • 太谢谢了~ 一下子就搞定了,之前联络了odoo的官方支持,他们也还没搞定或者说顾得上搞定,搜遍全网都没找到这个解决方法,兄弟,在上海不,我要请你吃饭。。。!!!版主,你可以来蹭一下~:)



  • [quote author=vFire link=topic=17116.msg30410#msg30410 date=1432651083]
    太谢谢了~ 一下子就搞定了,之前联络了odoo的官方支持,他们也还没搞定或者说顾得上搞定,搜遍全网都没找到这个解决方法,兄弟,在上海不,我要请你吃饭。。。!!!版主,你可以来蹭一下~:)
    [/quote]
    哈哈,客气啦,我在北京不在上海,可以让校长和Joshua代我去吃啊,O(∩_∩)O哈哈~



  • [quote author=KevinKong link=topic=17116.msg30412#msg30412 date=1432691680]
    [quote author=vFire link=topic=17116.msg30410#msg30410 date=1432651083]
    太谢谢了~ 一下子就搞定了,之前联络了odoo的官方支持,他们也还没搞定或者说顾得上搞定,搜遍全网都没找到这个解决方法,兄弟,在上海不,我要请你吃饭。。。!!!版主,你可以来蹭一下~:)
    [/quote]
    哈哈,客气啦,我在北京不在上海,可以让校长和Joshua代我去吃啊,O(∩_∩)O哈哈~
    [/quote]

    那我去北京的时候怎么也得找你吃饭~ 把QQ密我~~~ 再次表示感谢~



  • OK , 官网  v8.0 分支已经合并进去了...
    到时看看 master v9.0 分支是否合并...

    https://github.com/odoo/odoo/commit/8fe042ea917dad6a09fe69ef47ad6d6c4f3a72af



  • ;)Cool

    不过看着你们沟通的过程,感觉朝官网提交个代码好费劲啊~~



  • 請問我們打印機(EPSON TM-T88IV)只有支援BIG5編碼

    我們印出來的中文字都會顯示 控控控控

    請問該如何修改呢?


登录后回复
 

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