`
daniel_tu
  • 浏览: 182522 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Python mysql 中文乱码

阅读更多

import MySQLdb
db_user = "tiger"
db_pw = "tiger"
db = MySQLdb.connect(host="localhost", user=db_user, passwd=db_pw ,db="finaltldw",charset="gb2312")
c = db.cursor()
c.execute("""select id, name from NODES""")
i=0;
for id, name in c.fetchall():
        print "%2d %s" % (id, name)
        i=i+1
        if i==100:
            break
       
返回结果:
-4 TEXT
-3 DATE
-2 INT
-1 STRING
1 TOP
2 教育
3 机构
4 人
5 地区
6 单位
7 科学研究
8 实验室
9 类型
10 学科
11 新闻
12 学科
13 新闻
14 简介
15 通知
16 通知
17 地区
18 省部级实验室
19 国家实验室

如果编码是UTF-8
转载一个解决方案: 其中的use db


Python操作MySQL以及中文乱码的问题

Python操作MySQL需要安装Python-MySQL
可以从网上搜索一下,和一般的Python包一样安装

安装好之后,模块名字叫做MySQLdb ,在Window和Linux环境下都可以使用,试验了一下挺好用,
不过又发现了烦人的乱麻问题,最后用了几个办法,解决了!

我用了下面几个措施,保证MySQL的输出没有乱麻:
    1 Python文件设置编码 utf-8 (文件前面加上 #encoding=utf-8)
    2 MySQL数据库charset=utf-8
    3 Python连接MySQL是加上参数 charset=utf8
    4 设置Python的默认编码为 utf-8 (sys.setdefaultencoding(utf-8)

mysql_test.py
   
#encoding=utf-8
import sys
import MySQLdb

reload(sys)
sys.setdefaultencoding(
'utf-8')

db
=MySQLdb.connect(user='root',charset='utf8')
cur
=db.cursor()
cur.execute(
'use mydb')
cur.execute(
'select * from mytb limit 100')

f
=file("/home/user/work/tem.txt",'w')

for i in cur.fetchall():
     f.write(str(i))
     f.write(
" ")

f.close()
cur.close()

上面是linux上的脚本,windows下运行正常!

注:MySQL的配置文件设置也必须配置成utf8

设置 MySQL 的 my.cnf 文件,在 [client]/[mysqld]部分都设置默认的字符集(通常在/etc/mysql/my.cnf):
[client]
default-character-set = utf8
[mysqld]
default-character-set = utf8
分享到:
评论

相关推荐

    python查询mysql中文乱码问题

    Python查询MySQL时遇到的中文乱码问题是一个常见的编程困扰,特别是在使用Python 2.7版本时更为突出。本文将深入探讨这个问题的成因,并提供一套详细的解决方案。 首先,我们需要了解问题的根本原因。当Python与...

    python操作mysql中文显示乱码的解决方法

    在Python编程语言中,与MySQL数据库进行交互时,有时会遇到中文字符显示为乱码的问题。这通常是由于编码不一致导致的。以下是一些解决Python操作MySQL时中文乱码问题的关键步骤和方法: 1. **Python文件编码设置**...

    Ubuntu的MySQL中文乱码问题

     /usr/local/lib/python2.7/dist-packages/Django-1.11.dev20170117002028-py2.7.egg/django/db/backends/mysql/base.py:109: Warning: Incorrect string value: 'xE6x88x90xE5x8Ax9F…' for column 'json' at row...

    Windows上Python连接MySQL数据库

    `charset='utf8mb4'`用于确保兼容UTF-8编码,防止中文乱码问题。 而使用`mysql-connector-python`库的代码则稍微不同: ```python import mysql.connector # 创建连接 cnx = mysql.connector.connect(user='your_...

    python sqlobject(mysql)中文乱码解决方法

    UnicodeEncodeError: ‘latin-1’ codec can’t encode characters in ...Python mysql 中文乱码 的解决方法,有需要的朋友不妨看看。 先来看一段代码:复制代码 代码如下:import MySQLdb db_user = “tiger”

    mysql中文乱码解决方案

    ### MySQL中文乱码解决方案 在使用MySQL数据库的过程中,可能会遇到中文显示乱码的问题。中文乱码问题通常是由于字符集设置不正确导致的。为了解决这个问题,我们需要从多个角度进行排查与解决,包括检查系统环境...

    Python操作MySQL数据进行图片存取操作

    Pymysql是一个Python语言中的数据库驱动模块,用于连接和操作MySQL数据库。它是一个纯Python实现,遵循Python DB-API 2.0规范。 本例中,我们所使用的Python版本是3.4,Pymysql版本为0.7.9。Pymysql可以通过以下的...

    Python3连接mysql

    2. **字符集问题**:当从数据库中读取中文数据时出现乱码,需确保数据库、表和字段的字符集设置为相同的编码(通常为`utf8`或`utf8mb4`)。 - 设置数据库字符集:`ALTER DATABASE db_name CHARACTER SET utf8mb4 ...

    解决python2.7 查询mysql时出现中文乱码

    在Python 2.7中,当进行MySQL数据库操作时,尤其是涉及中文字符时,可能会遇到中文乱码的问题。这个问题通常涉及到多个层面,包括数据库配置、Python连接设置以及数据读取时的编码处理。以下是一些详细的解决步骤和...

    解决mysql乱码

    ### 解决MySQL乱码 在使用MySQL数据库的过程中,可能会遇到字符显示乱码的问题。乱码问题通常是由于字符集设置不正确或不匹配所导致的。本文将详细介绍如何解决MySQL中的常见乱码问题,并提供实际的操作步骤。 ###...

    Python Mysql自动备份脚本.pdf

    `#encoding=utf-8`这一行确保脚本内部的字符串以UTF-8编码处理,避免中文字符乱码问题。 接下来,作者定义了备份的一些关键参数,包括: 1. `backup_path`: 备份文件保存的目录,例如`d:\\mysql_backup_files`。 2....

    Python程序中使用SQLAlchemy时出现乱码的解决方案

    今天对clubot进行了升级, 但是导入数据后中文乱码, 一开是找资料说是在创建引擎的时候添加编码信息: engine = create_engine(mysql://root:@localhost:3306/clubot?charset=utf8) 但是这并不行, 然后查看表信息: ...

    浅谈mysql的中文乱码问题

    MySQL的中文乱码问题是一个常见的困扰开发者的问题,尤其是在进行数据导入、导出或者通过不同的工具与MySQL交互时。本文将详细解析这个问题,并提供相应的解决策略。 首先,问题出现在使用Eclipse通过JDBC向MySQL...

    Mysql中文乱码以及导出为sql语句和Excel问题解决方法[图文]

    MySQL中文乱码问题通常在数据导入、导出或者在不同编码环境之间操作时出现,主要涉及到字符集设置不一致导致的。以下是一些解决方法: 首先,了解MySQL字符集的基本概念。MySQL支持多种字符集,如UTF-8、GBK、GB...

    Python如何读取MySQL数据库表数据

    本文实例为大家分享了Python读取MySQL数据库表数据的具体...## 加上字符集参数,防止中文乱码 dbconn=pymysql.connect( host="**********", database="kimbo", user="kimbo_test", password="******", port=330

    Ubuntu15.10使用mysql 5.6.28中文乱码问题解决.docx

    在Ubuntu 15.10操作系统中安装并使用MySQL 5.6.28时,可能会遇到中文乱码的问题。这通常与字符集配置有关,影响到数据的正确存储和显示。以下是一份详细的解决方案,旨在帮助你解决这个问题。 首先,我们需要检查...

    pymysql python连接mysql数据库

    `charset`用于设置字符编码,防止中文乱码问题。 ### 3. 插入数据 插入数据到MySQL数据库,可以使用`execute()`方法执行INSERT语句: ```python sql = "INSERT INTO table_name (column1, column2) VALUES ('...

    提交数据到服务器中文乱码处理

    在IT行业中,中文乱码是一个常见的问题,尤其是在数据交换、存储和显示的过程中。当涉及到将中文数据提交到服务器时,由于编码格式不匹配或者处理不当,可能会导致接收方接收到的数据显示为乱码。要解决这个问题,...

Global site tag (gtag.js) - Google Analytics