python3获取到一个变量是‘张\ue863’,打印就报错,如何print呢?

我从数据库获取到一个人的姓名,手机是(‘张X’,13660000000) 一个元组,可以直接打印出来
打印出来是(‘张\ue863’,'13660000000')X是一个生僻字,在python3显示出来是‘张ue863’
如果我令a=(‘张\ue863’,'13660000000')
再print(a[0])就会报错,gbk codec can't encode character '\ue863'.
请问怎么解决?,我不需要真的显示那个字,让我不要报错就行……

报错示例:
a='\ue863'
print(a)
直接报错,请问怎么解?

# encoding: utf-8

img

如果只是为了程序不中断, 那可以获取数据处理时, 加上 try: except: 把异常处理一下。

比如这样

a = ""
try:
    a= '张\ue863'
except:
    print("获取a异常")
print(a)
```python

a='\ue863'
print(repr(a))
'\ue863'

这样子可以吗?

img

实在不行。。。

import json
a = '\ue863'

print(json.dumps(a,ensure_ascii=False))

img

我这样写还是报同样的错呀0 0

截下你的程序结构, 标2个文件名出来:用到 显示名字的 py文件, 和读数据库的py。 再看看这两个文件的第一行。
结构就像这样

img

文件字符集设置错误导致的,请将文件字符集设置为utf-8.并输入代码:有帮助请采纳谢谢!

img


# encoding: utf-8

a=('张\ue863','13660000000')
print(a[0])

设置文件字符集:

img

先打印出来看看是什么类型

a = '\ue863'
print(chardet.detect(str.encode(a)))

可以尝试将生僻字转换成拼音在进行打印