经过30个小时的coding,终于解决了编码问题.现在把过程和体会记录下来:P</br>
MySQL 数据库方面:</br>
数据库的创建支持UTF8:
CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
很多时候,默认的会选择COLLATE utf8_general_ci,这个对中文支持不好.我就是错在这里了。
Python 编码方面:
1指定文件编码是必须的:
#-*-coding:utf-8-*-
</br>
2某些环境下可以使用这个:</br>
reload(sys);sys.setdefaultencoding('utf-8')
</br>
3python的字符串分为"unicode"和"str"</br>
-1 str 是指带有编码的字符串
-2 unicode 是指不带有编码的字符串
这两个概念的相互转换是这样进行的:
str ------> unicode --------> str
decode encode
解码 编码
举个最简单的例子:
引用
>>> a = '中'
>>> a
'\xd6\xd0'
>>> b = u'中'
>>> b
u'\u4e2d' [color=red][b]即保存'中'的gbk值做为b[/b]
</br>
根据上面的描述,b应该是不进行编码的a的值(反正a就是b带有gbk编码的值)
于是,我们可以得到
>>> a.decode( 'gbk' )
u'\u4e2d'
同样也可以得到
>>> b.encode( 'gbk' )
'\xd6\xd0'
所以一般的
xxx.decode('gbk').encode('utf-8')
4.MySQLdb操作</br>
conn=MySQLdb.connect(host,usr,pwd,db,charset='utf8')
</br>
PHP读取操作:</br>
<?php
$conn=mysql_connect($hostname='127.0.0.1',$username='root',$password='');
mysql_select_db('text');
mysql_query("set names 'utf8'");
$sql='select text from text where id = 1';
$result=mysql_query($sql,$conn);
while ($row = mysql_fetch_assoc($result)){
print $row['text'];
}
?>
更多可以参考:
http://www.blogjava.net/vulcan/articles/160978.html
http://www.yuanma.org/data/2006/0907/article_1476.htm
分享到:
- 2008-03-10 17:54
- 浏览 2278
- 评论(0)
- 论坛回复 / 浏览 (0 / 3812)
- 查看更多
相关推荐
在Python编程环境中,连接并操作MySQL数据库通常需要一个适配器或驱动,使得Python能够与MySQL服务器进行通信。对于Python 2.7版本在Windows操作系统下,常用的MySQL驱动是`pymysql`和`MySQLdb`。这两个库允许开发者...
Python与MySQL的基础集成是开发数据驱动应用程序的关键环节。在Python中,主要依赖于两个库来实现与MySQL数据库的连接:`mysql-connector-python`和`PyMySQL`。这两个库提供了Python与MySQL通信所需的接口,使得我们...
但需要注意的是,在Python 3中,可能会遇到一些兼容性问题,如编码问题等。在配置settings.py文件时,应该确保engine设置为'django.db.backends.mysql',并且其他参数如NAME、USER、PASSWORD等均需正确填写。 在...
Python查询MySQL时遇到的中文乱码问题是一个常见的编程困扰,特别是在使用Python 2.7版本时更为突出。本文将深入探讨这个问题的成因,并提供一套详细的解决方案。 首先,我们需要了解问题的根本原因。当Python与...
Python MySQL驱动是Python编程语言与MySQL数据库之间交互的桥梁,使得开发者可以利用Python进行数据库的查询、更新和管理。在Python中,最常用的MySQL驱动包括`mysql-connector-python`和`pymysql`。本教程将详细...
2. **字符集问题**:当从数据库中读取中文数据时出现乱码,需确保数据库、表和字段的字符集设置为相同的编码(通常为`utf8`或`utf8mb4`)。 - 设置数据库字符集:`ALTER DATABASE db_name CHARACTER SET utf8mb4 ...
在测试的时候,需要造模拟数据,或者是将生产环境的数据导出到测试环境中去,本文记录通过python读取txt文件,并将数据导入mysql数据库 1、示例代码: import pymysql # 打开数据库连接 conn = pymysql.connect(host...
`charset='utf8mb4'`用于确保兼容UTF-8编码,防止中文乱码问题。 而使用`mysql-connector-python`库的代码则稍微不同: ```python import mysql.connector # 创建连接 cnx = mysql.connector.connect(user='your_...
最后,则侧重于如何运用Python对MySQL执行高效的CRUD操作和其他高级功能(如存储过程、事务管理和自动化的备份与恢复),特别提到了批量插入优化技术和使用MySQL Connector实现高效的数据检索和处理。 适合人群:...
MySQL-python是Python编程语言与MySQL数据库之间的一个接口,它允许Python开发者方便地访问和操作MySQL数据库。这个压缩包包含了两个版本的MySQL-python安装程序:一个适用于32位系统(MySQL-python-1.2.3.win32-py...
总的来说,MySQL-python库是Python开发人员在Windows环境中连接和操作MySQL数据库的重要工具。通过这个压缩包提供的安装程序,用户可以在不消耗过多积分的情况下,便捷地获取并安装这个功能强大的数据库连接器。
在Python中,我们可以使用`mysql-connector-python`库来连接和操作MySQL数据库。通过创建连接,执行SQL语句(如SELECT、INSERT、UPDATE、DELETE等)来实现数据的增删改查。同时,为了确保数据安全,通常会使用预编译...
操作系统库:os 5.3编码方式 前端网页:GBK 服务器端:GBK 数据库:UTF-8 5.4运行环境 服务器:Windows7 SP1旗舰版 + Python2.7 前端:Opera浏览器 34.0(Chrome内核) 数据库:MySQL Server 5.5...
其他说明:虽然本文档提供了大量关于如何用Python进行简单MySQL操作的例子,但对于更复杂的企业级应用,比如高性能并发处理等问题,则超出了讨论范围。因此,对于追求高效稳定的应用开发人员来说,这只是一个起点。
这个模块允许Python程序员方便地与MySQL服务器进行交互,执行SQL查询,处理数据库事务等操作。在Windows 10 64位操作系统上安装MySQL-python可能涉及到以下几个关键步骤和知识点: 1. **系统兼容性**: - 首先,...
注意,为了兼容中文字符,脚本中使用了`setdefaultencoding('utf8')`,但这是不推荐的,因为Python 3默认支持UTF-8编码,应使用`open`函数的`encoding`参数设置编码。 总结来说,这段Python代码提供了一个实用的...
以下是一些解决Python操作MySQL时中文乱码问题的关键步骤和方法: 1. **Python文件编码设置**: 在Python源代码文件的开头,添加注释 `#encoding=utf-8` 来指定文件的编码格式为UTF-8。这样,Python解释器在读取...
本文将深入探讨如何使用Python语言访问MySQL数据库,通过实例演示如何在Eclipse集成开发环境中通过Python-MySQLconnector实现数据库的增、删、改、查操作。 首先,让我们了解Python DB-API的相关知识。在引入DB-API...