下午开发新改的代码在print路径时出现上述问题,如下:

Traceback (most recent call last):
File "./update.py", line 606, in <module>
replace_exec_script()
File "./update.py", line 550, in replace_exec_script
print(file_path.encode('gbk').decode('utf-8'))
UnicodeEncodeError: 'gbk' codec can't encode character '\udcd6' in position 49: illegal multibyte sequence

网上搜了半天没找到解决方案。唯一解释到位的就是https://blog.csdn.net/lilongsy/article/details/80724799,其他都是不对号瞎扯,路径中有中文是个明确的需求,不是伪需求。

最后琢磨着这个\udcd6,以及“默认情况下,Python假定所有文件名都已经根据 sys.getfilesystemencoding() 的值编码过了。 但是,有一些文件系统并没有强制要求这样做,因此允许创建文件名没有正确编码的文件。 这种情况不太常见,但是总会有些用户冒险这样做或者是无意之中这样做了( 可能是在一个有缺陷的代码中给 open() 函数传递了一个不合规范的文件名)。”,猜测这不是python的锅,估计linux下显示就是乱码的,果不其然,如下:

[root@oel-12c 201809]# find ./app/20180108Build/scripts/ -name "*.sql"
./app/20180108Build/scripts/conf/000005-????/TA000005_????1.sql
./app/20180108Build/scripts/conf/bo-????/12.sql

将其该文中文后,问题就解决了。那这个????文件名是如何生成的呢?原来是通过xftp上传的,上传时没有指定连接使用UTF-8编码,所以就乱码了。勾上UTF-8编码,问题解决了。

UnicodeEncodeError: 'utf-8' codec can't encode character '\udce4' in position 1: surrogates not allowed根本解决方法的更多相关文章

  1. 'gbk' codec can't encode character '\xa5' in position 4546: illegal multibyte sequence错误解决

    sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030') 原文 http://blog.csdn.net/jim7424 ...

  2. 解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX

    从网上抓了一些字节流,想打印出来结果发生了一下错误: UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position ...

  3. UnicodeEncodeError: 'gbk' codec can't encode character '\xa0' in position 1987: illegal multibyte sequence

    在爬取 url = "http://stats.meizhou.gov.cn/show/index/1543/1689" 时出现了问题: UnicodeEncodeError: ' ...

  4. UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 30633: illegal multibyte sequence

    import urllib.request def load_baidu(): url = "https://www.baidu.com/" header = {"Use ...

  5. Python Solve UnicodeEncodeError 'gbk' / 'ascii' / 'utf8' codec can't encode character '\x??' in position ? 解决有关Python编码的错误

    在Python中,处理中文字符一直是很令人头痛的问题,一言不合就乱码,而且引起乱码的原因也不尽相同,有时候是python本身默认的编码器设置的不对,有时候是使用的IDE的解码器不对,还有的时候是终端t ...

  6. 解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX

    从网上抓了一些字节流,想打印出来结果发生了一下错误: UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position ...

  7. UnicodeEncodeError: 'gbk' codec can't encode character '\u25aa' in position 15: illegal multibyte sequence

    UnicodeEncodeError: 'gbk' codec can't encode character '\u25aa' in position 15: illegal multibyte se ...

  8. 解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX(转)

    原文地址:https://www.cnblogs.com/feng18/p/5646925.html 从网上抓了一些字节流,想打印出来结果发生了一下错误: UnicodeEncodeError: 'g ...

  9. python 写入日志的问题 UnicodeEncodeError: 'gbk' codec can't encode character '\xbb' in position 0: illegal multibyte sequence

    最近,使用python的logging模块,因为这个写入日志写完后就没有管它.在存储日志信息的时候,一直提示: UnicodeEncodeError: 'gbk' codec can't encode ...

随机推荐

  1. python 常见报错汇总

    python官方文档:https://docs.python.org/zh-cn/3/tutorial/index.html 1.indentationerror:unindent does not ...

  2. [LeetCode] questions conlusion_InOrder, PreOrder, PostOrder traversal

    Pre: node 先,                      Inorder:   node in,           Postorder:   node 最后 PreOrder Inorde ...

  3. smali参数引用说明

    比如非静态函数test(IJZ)V; p0表示this p1 I p2 J 以此类推

  4. RF基础(一) RF内建函数库BuiltIn

    Robot framework做为一个测试框架,并不是只能做selenium测试,是支持扩展的, 比如说,你引用requests库就可以做接口测试, 那么无论你用什么库 首先要了解, RF本身提供的内 ...

  5. node.js初识03

    node中的url var http = require("http"); var url = require("url"); var server = htt ...

  6. 移动端的rem适配

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. rsa 加密 pkcs#1格式秘钥的格式化

    C++调用openssl库生成的秘钥对,通过传输传出来的只有秘钥的内容,没有秘钥的格式.而我们在调用openssl库加密解密时,传入的秘钥是需要包含格式的.C++调用openssl库需要的格式为pkc ...

  8. bat cmd 获取管理员权限

    @ echo off % % ver|find "5.">nul&&goto :Admin mshta vbscript:createobject()(win ...

  9. composer----------composer基本命令和遇到一些问题解决方案

    1.composer跟xdebug有冲突,每次用composer命令的时候都要报xdebug的错误,去php的配置文件里面将xdebug注释掉就可以了,但是我注释掉了以后还是不行.找了半天才看到,我用 ...

  10. Python学习笔记之装饰器原理

    def decorator(fn): def wrapper(): print("询价") fn() print("购买成功!") return wrapper ...