python字符串无法识别_Python 从配置文件读取的字符串和直接程序里面设置的字符串有啥区别? odbc 无法识别配置文件的字符串...

likuku

2018-01-17 04:29:46 +08:00

@qile1 你可以尝试编辑,保存 配置文件 .ini 使用 UTF-8 编码,与 .py 处理方式一致。

Python 3.6.4 (default, Dec 21 2017, 00:56:19)

[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin

Type "help", "copyright", "credits" or "license" for more information.

>>> s='我是猫'

>>> s.encode('utf-8')

b'\xe6\x88\x91\xe6\x98\xaf\xe7\x8c\xab'

>>> s.encode('utf-16')

b'\xff\xfe\x11b/f+s'

>>> s.encode('utf-16-le')

b'\x11b/f+s'

>>> b'\x11b/f+s'.decode('utf-16-le')

'我是猫'

我之前遇到类似状况:

macOS 的 文件系统里保存一些路径含有空格汉字和各种奇怪字符,

终端(UTF-8)下读到 /代码里 /配置文件(UTF-8)都正确,但 python3 通过 bash call 命令行的工具去访问这些路径时,就找不到了。

好在 python3 的 subprocess 支持路径信息可以直接使用 bytes 类型(按指定编码的字节流),只要原始字串路径是正确的,那么按文件系统 /shell 环境的编码转换后的 bytes 就可以被正确识别+执行。

你可尝试:

1. 你 .py 是直接运行(双击 .py 就关联解析器运行),那么 UTF-8 就 OK 的

2. 你的 .py 一个 cmd/powershell 窗口里运行,那么建议先在 cmd/powershell 里执行 chcp 65001 来让终端编码使用 UTF-8

或许你的 ODBC 驱动里也支持使用 bytes 类型访问数据文件,那么就可以试试:

db_filename1="D:\pythontest\Data.mdb".encode("utf-8")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值