python2写的代码移植到python3后无法转码成中文文本,请大神指教,谢谢~

python2写的代码移植到python3后无法转码成中文文本,请大神指教,谢谢~

python2写的代码移植到python3后无法转码成中文文本,请大神指教,谢谢~
使用以上方法对输出的字符串转换成bytes格式再转码依旧显示十六进制格式

python2写的代码移植到python3后无法转码成中文文本,请大神指教,谢谢~
定位问题后发现,有可能在第一步将sample文本生成词向量时转码后没有转回来 由于python3字符串默认编码是Unicode,尝试将指定编码encoding=utf-8去掉使用默认编码格式,仍然输出十六进制格式,百思不得其解。
在python2.7.13的环境下运行正常:

python2写的代码移植到python3后无法转码成中文文本,请大神指教,谢谢~
输出为字符串类型:

python2写的代码移植到python3后无法转码成中文文本,请大神指教,谢谢~

由于python3中字符串没有decode,将字符串类型转换为字节类型,decode输出仍然不变,真的好奇怪

python2写的代码移植到python3后无法转码成中文文本,请大神指教,谢谢~
代码没问题来着

python2写的代码移植到python3后无法转码成中文文本,请大神指教,谢谢~

Jason990420
最佳答案
artile_keys = (
    "C:\\Users\\www-3\\AppData\\Local\\Programs\\Python\\Python36\\python.exe "
    "C:/Users/www-3/Desktop/keyword_extraction-master/keyextract_word2vec_2.py"
    " b'\\xe8\\xae\\xbe\\xe5\\xae\\x9a\\xe5\\x80\\xbc' b'\\xe8\\xb8\\xa9\\xe4"
    "\\xb8\\x8b' b'\\xe6\\xb2\\xb9\\xe9\\x97\\xa8' b'\\xe4\\xbd\\xbf\\xe8\\x83"
    "\\xbd' b'\\xe9\\xa9\\xbb\\xe8\\xbd\\xa6' b'\\xe6\\xb0\\xb8\\xe7\\xa3\\x81"
    "' b'\\xe5\\xbc\\x80\\xe5\\xba\\xa6'")

lst = artile_keys.split()

for string in lst[2:]:
    print(eval(string).decode())
设定值
踩下
油门
使能
驻车
永磁
开度
3年前 评论
讨论数量: 6
Jason990420
def convert(byte_string, encoding='utf-8'):
    return byte_string.decode(encoding=encoding)

for b_str in (
        b'\xe6\x97\xb6', 
        b'\xe7\xa9\xba\xe6\x8c\xa1', 
        b'\xe8\xae\xbe\xe5\xae\x9a\xe5\x80\xbc'):
    print(convert(b_str))
时
空挡
设定值

编码转换

3年前 评论
chenmeiying (楼主) 3年前
chenmeiying (楼主) 3年前
Jason990420 (作者) 3年前
chenmeiying (楼主) 3年前
chenmeiying (楼主) 3年前

file 这是最终生成在文档中的数据

3年前 评论
Jason990420
artile_keys = (
    "C:\\Users\\www-3\\AppData\\Local\\Programs\\Python\\Python36\\python.exe "
    "C:/Users/www-3/Desktop/keyword_extraction-master/keyextract_word2vec_2.py"
    " b'\\xe8\\xae\\xbe\\xe5\\xae\\x9a\\xe5\\x80\\xbc' b'\\xe8\\xb8\\xa9\\xe4"
    "\\xb8\\x8b' b'\\xe6\\xb2\\xb9\\xe9\\x97\\xa8' b'\\xe4\\xbd\\xbf\\xe8\\x83"
    "\\xbd' b'\\xe9\\xa9\\xbb\\xe8\\xbd\\xa6' b'\\xe6\\xb0\\xb8\\xe7\\xa3\\x81"
    "' b'\\xe5\\xbc\\x80\\xe5\\xba\\xa6'")

lst = artile_keys.split()

for string in lst[2:]:
    print(eval(string).decode())
设定值
踩下
油门
使能
驻车
永磁
开度
3年前 评论
Jason990420

都用图, 不如用文本模式, 至少可以复制不用重打一次, 也可以更清楚怎么回事.

如果是简化, 可以执行的代码, 就更好了.

3年前 评论
chenmeiying (楼主) 3年前

问题已经解决了 这位大哥祝您生活愉快~~

file

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!