首页 数据库 mysql教程 MySQL python 汉字乱码的最终解决方案

MySQL python 汉字乱码的最终解决方案

Jun 07, 2016 pm 04:11 PM
mysql python 乱码 汉字 解决方案

以下的文章主要讲述的是MySQL python 汉字乱码的解决方案 ,我前两天在相关网站看见MySQL python 汉字乱码的解决方案的资料,觉得挺好,就拿出来供大家分享。希望会给你带来一些帮助在此方面。 1.想实现对一个二类文本问题的两种分类方法,首先要对文档集合

以下的文章主要讲述的是MySQL python 汉字乱码的解决方案 ,我前两天在相关网站看见MySQL python 汉字乱码的解决方案的资料,觉得挺好,就拿出来供大家分享。希望会给你带来一些帮助在此方面。

1.想实现对一个二类文本问题的两种分类方法,首先要对文档集合的文本进行分词,然后建立倒排表,倒排表是借助于MySQL数据库的,但是有一个众所周知的事情,MySQL插入汉字会出现各种莫名奇妙的情况,首当其冲是插不进去,而获是插进去了,但是显示是乱码,然后将插入后的数据再读到程序中仍然是乱码。

这归根结底是编码符号不一致的问题也就是。再解决这个问题的过程中,我参考了的东东,这里对他凌乱的内容加以总结,让和我一样的菜鸟能够快速入门。

我们所说的编码格式一致:

character_set_client,character_set_connection,character_set_database,

character_set_results,character_set_server编码要一致。下面说说如何将这三者调为一致。

1.首先,修改my.ini文件(该文件在MySQL安装目录下)

(1)修改 my.ini(MySQL Server Instance Configuration 文件)

<ol class="dp-xml">
<li class="alt"><span><span># CLIENT SECTION  </span></span></li>
<li><span>[client]  </span></li>
<li class="alt">
<span class="attribute">port</span><span>=</span><span class="attribute-value">3306</span><span> </span>
</li>
<li>
<span>[</span>MySQL<span>]  </span>
</li>
<li class="alt">
<span class="attribute">default-character-set</span><span>=</span><span class="attribute-value">gbk</span><span> </span>
</li>
<li><span># SERVER SECTION  </span></li>
<li class="alt">
<span>[</span>MySQL<span>d]  </span>
</li>
<li>
<span class="attribute">default-character-set</span><span>=</span><span class="attribute-value">gbk</span><span>   </span>
</li>
</ol>
登录后复制

MySQL python 汉字乱码的解决方案后修改character_set_server 这个是最麻烦的,也是最关键的,具体方法如下:

先关掉服务,

DOS-》MySQL安装目录,bin

MySQLadmin -u root -p shutdown (回車)然後系統將提示輸入密碼

因為停止MySQL數據庫是需要MySQL的root權限的

然后MySQLd –C GBK启动服务器 –C是character_set_server的一个简写(可以也可以写成MySQLd –character_set_server gbk).

其次,创建新数据库,方法如下:MySQLCommandLineClient下:

<ol class="dp-xml">
<li class="alt"><span><span>create database yourDB CHARACTER SET gbk;  </span></span></li>
<li><span>set names 'gbk'  </span></li>
</ol>
登录后复制

然后重启将MySQL 服务关掉,再重启后就可以插入汉字了

完成以上操作后,在MySQLCommandLineClient下输入 use nlpprocess;(注:我新建的数据库)

show variables like 'character%'就会出现博文开头的图,也就说明字符集设置一致了。

下面我们看看修改后数据库显示情况(我的系统为MySQL5.1+administrator+querybrowser)

上图中的数据是C#向MySQL中加入的,需要注意的是链接字符串应该如下构造,

stringconmyengine="server=localhost;user=root;database=nlpprocess;port=3306;password=xxxx;charset=gbk";

下面说下python如何设置才能正确无误,没有乱码地从数据库中读取汉字字段。

python读取有汉字值的表单

<ol class="dp-xml">
<li class="alt"><span>import MySQLdb  </span></li>
<li>
<span class="attribute">db</span><span>=</span>MySQL<span class="attribute-value">db</span><span>.connect(</span><span class="attribute">user</span><span>=</span><span class="attribute-value">'root'</span><span>,</span><span class="attribute">db</span><span>=</span><span class="attribute-value">'nlpprocess'</span><span>,</span><span class="attribute">passwd</span><span>=</span><span class="attribute-value">'xxx'</span><span>,</span><span class="attribute">host</span><span>=</span><span class="attribute-value">'localhost'</span><span>)  </span>
</li>
<li class="alt">
<span class="attribute">cursor</span><span>=</span><span class="attribute-value">db</span><span>.cursor()  </span>
</li>
<li>
<span class="attribute">select</span><span>=</span><span class="attribute-value">'select term_id,stemroot from nlpinvert where term_id between 10 and 14'</span><span> </span>
</li>
<li class="alt"><span>cursor.execute("set NAMES GBK")  </span></li>
<li><span>cursor.execute(select)  </span></li>
<li class="alt"><span>for r in cursor.fetchall():  </span></li>
<li><span>print str(r[0])+':'+r[1]  </span></li>
<li class="alt"><span>cursor.close()  </span></li>
<li><span>db.close()  </span></li>
</ol>
登录后复制

以上的相关内容就是对MySQL python 汉字乱码的解决方案 的介绍,望你能有所收获。


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1662
14
CakePHP 教程
1418
52
Laravel 教程
1311
25
PHP教程
1261
29
C# 教程
1234
24
MySQL和PhpMyAdmin:核心功能和功能 MySQL和PhpMyAdmin:核心功能和功能 Apr 22, 2025 am 12:12 AM

MySQL和phpMyAdmin是强大的数据库管理工具。1)MySQL用于创建数据库和表、执行DML和SQL查询。2)phpMyAdmin提供直观界面进行数据库管理、表结构管理、数据操作和用户权限管理。

MySQL与其他编程语言:一种比较 MySQL与其他编程语言:一种比较 Apr 19, 2025 am 12:22 AM

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。 MySQL以其高性能、可扩展性和跨平台支持着称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

Python项目是否需要进行分层? Python项目是否需要进行分层? Apr 19, 2025 pm 10:06 PM

Python项目中的分层结构探讨在学习Python的过程中,很多初学者会接触到一些开源项目,特别是使用Django框架的项...

在MySQL中解释外键的目的。 在MySQL中解释外键的目的。 Apr 25, 2025 am 12:17 AM

在MySQL中,外键的作用是建立表与表之间的关系,确保数据的一致性和完整性。外键通过引用完整性检查和级联操作维护数据的有效性,使用时需注意性能优化和避免常见错误。

后端开发中的分层架构如何正确划分业务逻辑和非业务逻辑? 后端开发中的分层架构如何正确划分业务逻辑和非业务逻辑? Apr 19, 2025 pm 07:15 PM

探讨后端开发中的分层架构问题在后端开发中,常见的分层架构包括controller、service和dao...

如何安全地将包含函数和正则表达式的JavaScript对象存储到数据库并恢复? 如何安全地将包含函数和正则表达式的JavaScript对象存储到数据库并恢复? Apr 19, 2025 pm 11:09 PM

安全地处理JSON中的函数和正则表达式在前端开发中,经常需要将JavaScript...

Python vs. C:了解关键差异 Python vs. C:了解关键差异 Apr 21, 2025 am 12:18 AM

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

比较和对比Mysql和Mariadb。 比较和对比Mysql和Mariadb。 Apr 26, 2025 am 12:08 AM

MySQL和MariaDB的主要区别在于性能、功能和许可证:1.MySQL由Oracle开发,MariaDB是其分支。2.MariaDB在高负载环境中性能可能更好。3.MariaDB提供了更多的存储引擎和功能。4.MySQL采用双重许可证,MariaDB完全开源。选择时应考虑现有基础设施、性能需求、功能需求和许可证成本。

See all articles