热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

(32)odoo中的编码问题

对于全部是英文就不存在问题,但我们常用中文,这样会导致一个棘手的问题约定:系统Ubuntutrusty14.04自带python2.7.6python2.7.9自己升级了升级方法

对于全部是英文就不存在问题,但我们常用中文,这样会导致一个棘手的问题

约定:

系统Ubuntu trusty14.04 自带python2.7.6

python2.7.9 自己升级了

升级方法:

-------------------------

准备

# apt-get -y install build-essential libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

安装 python2.7.9

# mkdir -p /opt/soft/python

# cd /opt/soft/python

# wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz

# tar -xzvf Python-2.7.9.tgz

# cd Python-2.7.9

# ./configure

# make

# make install

升级 python 完成

-------------------------

Python 默认编码为 ascii

clip_image001

把它设为utf-8, 这个编码处理相对好一些

在python的Lib\site-packages文件夹下新建一个sitecustomize.py,内容为:

Python代码

# encoding=utf8

import sys

reload(sys)

sys.setdefaultencoding('utf8')

如下图:

clip_image003

具体的lib/site-packages每个人有所有不同,找到自己的就可以。

改好重启python服务,说白了就是 ctrl+D 退出控制台,再输入python 进入

-----------------------------------

核对改的效果:

clip_image004

好了核对正确。

---------------------------------------

下面以升级一个模块,模块中有中文文件名为例:

模块目录如下:

clip_image005

点“模块升级” 报错了

clip_image007

查到 openerp/tools/osutil.py", line 57, in walksymlinks

没有编码为utf-8,自然无法正确得到中文的文件名,这时的变量是unicode

只能加一行,如下:

clip_image008

保存就可以,有这一行,以后模块中有文件名为中文的升级时就不报错了

刚才报错了刷新显示如下:

clip_image010

这时不要急,用数据库工具连到数据库 找到 ir_module_module 这个表,接着找到刚才模块升级的模块 rain_china_region

clip_image011

在数据表中筛选一下

clip_image013

把 红框中的 to upgrade 改为 installed

每当模块升级时,一定记得模块的目录名,这样升级万一错了,改一下状态就可以重新来做。

要不然,系统崩溃了不知如何处理。

clip_image015

点一下钩完成

上面改动了python代码,一定要记得重启odoo服务 生效

接着去刷新浏览器

clip_image017

复活了,再点“模块升级” ,ok可以正常升级

对于文件的中文 一般不会乱码,主要是python 设定了默认编码为utf-8

文件编码是utf-8 , 内容编码也是utf-8 这样就一致了


推荐阅读
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • docker安装到基本使用
    记录docker概念,安装及入门日常使用Docker安装查看官方文档,在"Debian上安装Docker",其他平台在"这里查 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 【技术分享】一个 ELF 蠕虫分析
    【技术分享】一个 ELF 蠕虫分析 ... [详细]
  •  项目地址https:github.comffmydreamWiCar界面做的很难看,美工方面实在不在行。重点是按钮触摸事件的处理,这里搬了RepeatListener项目代码,例 ... [详细]
  • charles3.11.1抓https包
    结论先行:用的是安卓测试机,没加固之前的生产环境的安装包,可以抓到https请求加固之后的包【也就是要上应用市场的包】,抓不到https请求电脑上的操作:1.安装证书【电脑上安装了 ... [详细]
  •   一、GeoTrust证书的相关介绍    GeoTrust成立于2001年,其到2006年就占领了全球市场25%的市场份额,所以GeoTrust是目前全球第二大的数字证书颁发机 ... [详细]
author-avatar
老爷们白百合开在秋天
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有