在使用xutils时post请求传递中文到服务端Mysql数据库出现中文乱码。

            在使用xutils时post请求传递中文到服务端Mysql数据库出现中文乱码。

这个问题困惑了我很久,也走了很多弯路。经过不断的探究终于找到了问题的解决方案。

第一:查看自己的mysql的编码。cmd—>mysql –uroot –p -->输入自己的mysql的密码—>输入 SHOWVARIABLES LIKE ‘character%‘;(如果装mysql时默认安装的话,会出现很多latin1,而不是我下面的全部utf-8,这是因为mysql默认的编码是latin1),如果全是Latin1的话,想要不出现中文乱码的话,就要改为utf-8了。

第二:更改Latin1为utf-8。找到安装mysql的路径下的my.ini文件。打开这个文件。

分别在:[client] 下一行加入default-character-set=utf8

[mysql]下一行加入default-character-set=utf8

[mysqld]下一行加入character-set-server=utf8(这里注意较老的版本mysql加入default-character-                                   set=utf8是可以的,但5.5就不可以了,重启mysql就会报错)

找到# Thedefault character set that will be used when a new schema or table is

# created and no character set is defined

character-set-server= latin1改为character-set-server=utf8。

这样就可以将Latin1为utf-8。重启mysql(右击我的电脑->管理->服务与应用程序->服务,找到mysql重启),当你重复第一步骤时会发现。大多数Latin1已经变为utf-8。可惜,可惜,有一项(character-set-server)还是为Latin1,这是由于当时装mysql时,默认安装时server编码默认为Latin1,这时,不要慌,mysql还是挺好的,可以重新设置编码。找到mysql的bin目录下的MySQLInstanceConfig.exe,启动这个就可以程序,将server的编码改为utf-8就行。重启mysql,执行第一步骤。会发现所有的Latin1已经改为utf-8(当然有一项filesystem就是binary,无需改的)。

第三:如果你使用的tomcat进行通信的话,由于tomcat的默认编码是iso8859-1。这是就需要修改tomcat的编码:修改tomcat下的conf/server.xml文件

找到如下代码:

<Connectorport="8080" protocol="HTTP/1.1"connectionTimeout="20000" redirectPort="8443" />

添加URIEncoding="UTF-8" 就行了。

第四:在传输中文时用

StringdeviceIntoTime=deviceInfEntity.getDeviceIntoTime();

//如果有中文,要进行URLEncoder.encode方法

params.addBodyParameter("deviceIntoTime",URLEncoder.encode(deviceIntoTime, "utf-8"));

接收时用:

String deviceIntoTime =URLDecoder.decode(request.getParameter("deviceIntoTime"),"utf-8");

第五:经过上面的步骤,存储到mysql的中文数据还是乱码,这是你的数据库建立有问题了。

比如我就出现:

Incorrect stringvalue: ‘\\xE6\\xB7\\xB1\\xE5\\x85\\xA5...‘ for column ‘title‘ at row 1"

这时修改数据库的属性,选择charset为utf-8,collation为utf8-unicode-ci。记得还有表中涉及中文的列也要选择charset为utf-8,collation为utf8-unicode-ci。这样就行了。

时间: 2024-10-10 05:55:50

在使用xutils时post请求传递中文到服务端Mysql数据库出现中文乱码。的相关文章

客户端发送中文消息到服务端Mysql数据库乱码的问题

这些天的实训写了一个班级发布消息到云端的小android应用,其中注册用户信息的时候需要将中文消息上传到云端的mysql数据库中,如果直接传中文字符串过去在数据库中会出现?的乱码,在加了如下代码之后问题得到了解决 其中tag是要传递的字符串:

MySQL数据库插入中文时出现Incorrect string value: &#39;\xE6\x97\xB7\xE5\x85\xA8&#39; for column &#39;sz_name&#39; at row 1

今天在开发时候出现了这个问题 Incorrect string value: '\xE6\x97\xB7\xE5\x85\xA8' for column 'sz_name' at row 1 场景,往MySQL数据库的表中插入中文参数,抛出了这个异常 我用sqlyog执行该段代码时候发现只是出现警告,并没有出现error,但是在代码里面执行抛出了异常,说明管理工具sqlyog对有些约定不是那么严格,而代码中就会报错.提醒自己,以后写sql时候不能忽略管理工具中出现的警告. 解决方案: 在用sql

mybatis连接mysql数据库插入中文乱码

对于mysql数据库的乱码问题,有两中情况: 1. mysql数据库编码问题(建库时设定). 2. 连接mysql数据库的url编码设置问题. 对于第一个问题,目前个人发现只能通过重新建库解决,建库的时候,选择UTF-8字符集.我试过修改现有数据库字符集为UFT -8,但是根本不起作用,插入的中文仍然乱码(中文显示成:???).重建库时选择字符集为UTF-8之后,中文正常显示了. 对于第二个问题,是这样 的情况:我建库时设置了数据库默认字符集为UTF-8,通过mysql workbench直接插

EF 连接MySQL 数据库 ?保存中文数据后乱码问题

EF 连接MySQL 数据库  保存中文数据后乱码问题 采用Code First 生成的数据库,MySQL数据库中,生成的表的编码格式为***** 发现这个问题后,全部手动改成UTF8(图是另一个表的图),否则插入的数据,就会全部变成乱码 修改后可以正常插入数据(注意!!这里是直接用SQL 代码插入的数据) 之后用代码界面保存数据,如图 但数据中却变成乱码: 修改方法: 在连接MySQL的连接字符串中,加入配置文件信息:Character Set=utf8  来自为知笔记(Wiz)

微信开发SDK使用教程--手机微信有好友请求添加好友的通知服务端

微信开发SDK使用教程--手机微信有好友请求添加好友的通知服务端 case FriendAddReqeustNotice: {//有好友请求添加好友的通知 log.debug("socket:msgtype=FriendAddReqeustNotice"); friendAddReqeustNoticeHandler.handleMsg(ctx, msgVo); break; } package com.jubotech.framework.netty.handler.socket;

mysql数据库存储中文数据的解决办法

我在学习django中admin模块的时候,登录进入后台操作页面,输入中文数据,但保存之后全是乱码(全是“????????????”),然后就开始了解决问题之路. 1.首先百度搜索,最主流的方法也是一劳永逸的方法是:修改MySQL的配置文件my.ini.我也是按照这个方法做的,只是搜索出来的方法不详细,或者说不适合MySQL的新版本. 2.在MySQL根目录下寻找my.ini配置文件,然而我装的是MySQL-5.6.30,在根目录下只找到了my-default.ini文件.把my-default

mysql数据库的中文乱码问题的解决

今天终于解决了数据库中文乱码的问题,分享出来让更多的人作为参考,我们进入主题: 如果在搭建mysql数据库的时候没有设置它的编码格式,在以后的开发中,中文乱码会是一个令人头疼的问题,所以我在这里分享一种彻底解决乱码的方法: 我是在ubuntu云服务器环境下进行的设置,Windows操作系统下操作更加简单,这里就不赘述,方法类似,大家自己可以查阅资料. 首先在命令行下输入: #cd /etc/mysql 进入目录后,然后修改my.cnf配置文件(mysql版本在5.5以上,现在基本都是这个以上)

asp.net 简单记录请求的客户端和服务端 处理时间

最近项目需要简单记录一下 ajax客户端和服务端处理时间,服务端时间的思路是借用BeginRequest和EndRequest事件,为了不影响现有接口返回的数据格式,因此服务处理时间放在response 的header里面. BeginRequest += (sender, args) => { HttpContext.Current.Items["ServerStartTime"] = DateTime.Now.Ticks.ToString(); }; EndRequest +

mysql数据库解决中文乱码问题

安装mysql之后,如果存储中文,再读出的时候就会出现乱码问题.现在的字符集有几百种之多,都是一些公司或者组织定义的.我们应该使用能够容纳世界全部语言全部字符的字符集,这样就不会再出现乱码问题.这就是现在通用的UTF-8.要理解编码就应该区分字符集和编码格式是说的同一问题的两个方面. 导致乱码的原因是存储和读取时采用的是不同的字符集. 推荐在建库之前修改编码格式: 一.进入mysql(mysql -uroot -p),查看当前数据库字符集(status;) 二.#vim /etc/mysql/m