python从数据库中获取utf8格式的中文数据输出时变成问号或乱码

我用python操作mysql数据库,数据库中数据格式为utf8,我使用python调用select语句后获取到数据库的信息,然后使用print打印出来的时候,原本中文数据却无法显示,显示出来的是一串?,为了解决这个问题,我也是绞尽脑汁啊。

我在网上搜集了很多资料,大家都说是windows默认的格式是‘GBK‘,输出从mysql数据库中获取到的中文数据时,需要这样写:

假设info是从数据库中获取的中文值
print info.decode('UTF-8').encode('GBK')

结果:

但是,我这样试了很多遍还是没有解决问题,还是输出?,也有人的观点是说在链接数据库的时候传入编码格式

db = MySQLdb.connect(‘localhost‘,‘root‘,‘‘,"zou",3306,‘utf8‘)

结果:

这样还是没有达到预期的效果,不过他这次不是出现?,而是变成乱码了,不过到这里的话已经朝着好的方向发展。

最终,我结合上述两种观点,达到了目的^_^

具体操作可以看看我的代码:

这次再看看程序运行的结果:

好的,问题解决!

时间: 2024-10-17 09:37:01

python从数据库中获取utf8格式的中文数据输出时变成问号或乱码的相关文章

获取当前年月日...信息的方法,获取请求的ip地址,由于数据库中是time格式,所以要获取时分秒的格式

1.获取当前年月日...信息的方法 1 public class CommonDate { 2 3 public final String year = String.valueOf(Calendar.getInstance().get(Calendar.YEAR)); 4 public final String month = String.valueOf(Calendar.getInstance().get(Calendar.MONTH)+1); 5 public final String

XML(php中获取xml文件的方式/ajax获取xml格式的响应数据的方式)

1.XML 格式规范: ① 必须有一个根元素 ② 不可有空格.不可以数字或.开头.大小写敏感 ③ 不可交叉嵌套 ④ 属性双引号(浏览器自动修正成双引号了) ⑤ 特殊符号要使用实体 ⑥ 注释和HTML一样 虽然可以描述和传输复杂数据,但是其解析过于复杂并且体积较大,所以实现开发已经很少使用了.   例: <?xml version="1.0" encoding="UTF-8"?> <root> <arrayList> <arr

是用JDBC从数据库中获取数据并以java对象返回

/** * * @param c * for example Person.class * @param primaryKeys * primaryKeys为主键,参数顺序和表中保持一致 如果id, name 为主键 类名为Person 则 getEntity(Person.class,1,"name") * @return */ public static Object getEntity(Class c, Object... primaryKeys) { PreparedState

django数据库中的时间格式与页面渲染出来的时间格式不一致的处理

django数据库中的时间格式与页面渲染出来的时间格式不一致的处理. 在数据库里,时间是这样显示的: date: 2012-07-21 12:27:22 | date | datetime | NO | | NULL | | +-----------+-------------+------+-----+---------+----------------+ 在模板里用: <span>{{ post.date }}</span> 打印出来,时间格式是这样的: July 21, 20

数据库中获取汉字的首字母(网上某大神的)

create function fun_getPY(@str nvarchar(4000))returns nvarchar(4000)asbegindeclare @word nchar(1),@PY nvarchar(4000)set @PY=''while len(@str)>0beginset @word=left(@str,1)--如果非汉字字符,返回原字符set @[email protected]+(case when unicode(@word) between 19968 an

PostgreSQL数据库中获取表主键名称

PostgreSQL数据库中获取表主键名称 一.如下表示,要获取teacher表的主键信息: select pg_constraint.conname as pk_name,pg_attribute.attname as colname,pg_type.typname as typename from pg_constraint inner join pg_class on pg_constraint.conrelid = pg_class.oid inner join pg_attribute

Django将从数据库中获取到数据转换为dict

这种方式只能应用于从数据库中获取到的单条数据,例如models.Users.objects.get()获取到的数据 from django.forms.models import model_to_dict class Index(VIew): def get(self, request): userObj = models.Users.objects.get(id = 1) userDict = model_to_dict(userObj) print(userDict) return Htt

怎样将数据库中获取的数据传到JSP页面并显示出来

首先说明一下,我这个项目实现的是:通过学号,在数据库中获取对应学生的名字并显示在页面上,如图: 接下来进入主题:如何获取数据库数据并在页面中显示出来 有两种方法: 方法一: 将通过DAO获取的数据,通过setAttribute()方法设置参数,通过请求转发,传到指定页面 方法二: 将获取到的数据保存在session作用域中 调用方式: 以上两种方法都可以用以下方式调用: EL表达式:${ 参数名 },注意:在使用EL表达式时,除非你已经导入了JSTL库,否则就要先进行以下步骤 这个是开启对EL表

向数据库中插入一个DateTime类型的数据到一个Date类型的字段中,需要转换类型。TO_DATE(&#39;{0}&#39;,&#39;YYYY-MM-DD&#39;))

需要指出的是,C#中有datetime类型,但是这个类型是包括小时,分钟,秒的.这个格式与数据库中的Date类型不符,如果将now设为datetime类型插入数据会失败. 需要通过TO_DATE('字段','YYYY-MM-DD'))转换.如下: string.Format("insert into tablename (TIME) values(TO_DATE('{0}','YYYY-MM-DD'))",now) 错误写法: string.Format("insert in