python中编码发生错误。

 mbe5757086 发布于 2022-10-28 19:16

linux环境下发生编码错误。windows下正常。
linux下已经在命令行改过编码格式,LANG=zh_CN.UTF-8

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 4-6: ordinal not in range(256)

最前面已经有 # -- coding:utf-8 --

这里写的是读取本地excel表格的表名。表名有数字和汉字。是在print的时候报错。

excel_files = get_excel_files(config.get_standard_template_files())#os.walk获得excel文件

standard_template_infos = {}
for file in excel_files:
    wb = xlrd.open_workbook(file)
    sheet_names = wb.sheet_names()
    for sheet_name in sheet_names:
        standard_template_id = get_standard_template_id(sheet_name)
        if not standard_template_id:
            print '请检查文件【%s】中的sheet页面【%s】。' % (file, sheet_name)
            continue
        sheet = wb.sheet_by_name(sheet_name)
        point_codes = []
        nrows = sheet.nrows
        if nrows <= 2:
            continue
        print sheet_name

def get_standard_template_id(sheet_name):#在这个函数中报错

pattern = u'^(\d{5})'
match = re.match(pattern, sheet_name)
if match is not None:
    code = sheet_name[0:5]
    return code
else:
    print sheet_name#在这里报错
return None

linux下python版本2.7.3.报错,
windows下python版本 2.7.13正常运行
求指教

2 个回答
  • 从错误信息可以得知,你的 Linux 系统上 Python 使用的默认编码是 latin-1
    如果你正确设置了 LANGLC_ALL 环境变量还出错的话,可以试试再设置 PYTHONIOENCODING 环境变量:

    export PYTHONIOENCODING=utf-8
    2022-10-30 03:38 回答
  • windows下的特殊编码,你可能需要转换,详情移步http://stackoverflow.com/ques...

    2022-10-30 03:39 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有