环境:mysql数据库字符集为:latin1
java web项目连接数据库为:utf-8
中文乱码解决办法:
插入时:把插入内容转为unicode,再插入数据库
查询时:把latin1查询结果转成unicode,再从unicode转成utf-8
/** * latin1字符集转换为UTF-8 * @param s * @return * @throws UnsupportedEncodingException */ public static String latin1ToUtf8(String s) { if (s != null) { try { int length = s.length(); byte[] buffer = new byte[length]; //0x81 to Unicode 0x0081, 0x8d to 0x008d, 0x8f to 0x008f, 0x90 to 0x0090, and 0x9d to 0x009d. //Mysql 的latin1 不等于标准的latin1(iso-8859-1) 和cp1252, //比iso-8859-1多了0x80-0x9f字符,比cp1252多了0x81,0x8d,0x8f,0x90,0x9d 一共5个字符 for (int i = 0; i < length; ++i) { char c = s.charAt(i); if (c == 0x0081) { buffer[i] = (byte) 0x81; } else if (c == 0x008d) { buffer[i] = (byte) 0x8d; } else if (c == 0x008f) { buffer[i] = (byte) 0x8f; } else if (c == 0x0090) { buffer[i] = (byte) 0x90; } else if (c == 0x009d) { buffer[i] = (byte) 0x9d; } else { buffer[i] = Character.toString(c).getBytes("CP1252")[0]; } } String result = new String(buffer, "UTF-8"); return result; } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } return null; }
相关推荐
打印sql语句还是中文 到数据库发现乱码,本以为是hibernate搞的,结果证明不是hibernate 自己也是网上解决办法 自己的问题解决了 希望能帮助其他人 运行命令:SHOW VARIABLES LIKE 'character_set_%'; 结果如下 '...
mysql 创建数据库时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防。制定数据库的编码可以很大程度上避免... 发现很多对应的都是 latin1,我们的目标就是在下次使用此命令时latin1能被UTF8取代。第
MySQL数据库乱码-Linux下乱码问题一 乱码问题是很让人抓狂的问题,下面我将记录一下linux下mysql乱码问题的解决...mysql默认字符集是latin1,但是我们大部分程序使用的字符集是utf8,我们就需要修改mysql的字符集了。
一般来说,造成MySQL出现中文乱码的因素主要有下列几点: 1.server本身字符集设定的问题,例如还停留在latin1 2.table的语系设定问题(包含character与collation) 3.客户端程序(例如php)的连线语系设定问题 对此,...
mysql默认的编码是Latin1是I-8859-1的别名,但Latin1是不支持汉字的,所以要将其改为UTF-8或GBK 1.关闭mysql服务器,这个很重要。 2.通过my.ini设置mysql数据库的编码 在mysql数据库的安装根目录下找到my.ini,例:C...
MySQL会出现中文乱码的原因在于 1.server本身设定问题,一般来说是latin1 2.建库建表时没有制定编码格式。 MySql中表单输入数据出现中文乱码的解决方法: 1.建库的时候 CREATE DATABASE test CHARACTER SET '...
最近开发项目中又重新拿起了Mysql,在搭建环境的时候遇到了中文乱码问题。...设置里面的latin1为utf8 3、另外如果在Java端通信数据的时候发生了乱码的话就response.setCharacterEncoding(“utf-8”); 您
MySQL从4.x版本开始支持Unicode,3.x只有latin1编码。刚工作的时候就开始用MySQL了,用的php存取,网页xxx.php是gb2312的编码,存进去的数据用php取出来是中文,用phpMyAdmin执行select、update、dump都是中文,没有...
MySQL从4.1版本开始才提出字符集的概念,所以对于MySQL4.0及其以下的版本,他们的字符集都是Latin1的,所以有时候需要对mysql的字符集进行一下转换,MySQL版本的升级、降级,特别是升级MySQL的版本,为了不让程序...
在这里记录了nodejs过程中的一些乱码情况,这里的乱码主要是由于网页的编码方式与nodejs的默认解码方式...原因是nodejs默认处理字符是utf8,而mysql默认是latin1,毕竟是欧洲人开发的数据库。分析如下 命令show var
登录MySQL,先做 set names latin1 ,然后在更新语句或者执行SQL语句 mysql> set names latin1; mysql> source test.sql; 方法二: 在SQL文件中指定set names latin1;然后登录MySQL,执行相应文件 [root@localhost ...
python2.7 查询或者插入中文数据在mysql中的时候出现中文乱码 — 可能情况: 1.mysql数据库各项没有设置编码,默认为’latin’ 2.使用MySQL.connect的时候没有设置默认编码 3.没有设置python的编码,python2.7默认为’...
一般为GBK,UTF8或Latin1.导出后,可以用文本编辑器先查看一下,看是否出现问号(?)等乱码. 3.导出和导入数据编码要保持一致(见特别说明4). 4.虽然程序目前支持GBK、BIG5、UTF8之间的编码转换,但这种转换不是安全的....
mysql乱码处理,MySQL会出现中文乱码的原因不外乎下列几点: 1.server本身设定问题,例如还停留在latin1 2.table的语系设定问题(包含character与collation) 3.客户端程式(例如php)的连线语系设定问题 强烈建议使用...
刚开始先检查MySQL数据库,发现正如网上所说,部分编码是latin1, 是如下的样子: 果断改啊 set character_set_client=utf8; set character_set_connection=utf8; set character_set_database=utf8; set character
第一个方法: MySQL 4.1 中文乱码的问题 最近要将 MySQL 4.0 升级到 MySQL 4.1 ,发现了中文乱码的问题,希望以下见解对大家有用。 1. MySQL 4.1 在文字上有很大改进,它有了 Character Set 与 Collation 的慨念。 2...
安装引导里一定要将默认的latin1编码换成utf8编码,不然后面会中文乱码 2,在那台电脑的MySQL中导入本人数据库脚本文件 studentmanager.sql (该文件已打包好)(这里推荐使用navicate for mysql 导入 数据库创建是...
python2.7 查询或者插入中文数据在mysql中的时候出现中文乱码 — 可能情况: 1.mysql数据库各项没有设置编码,默认为’latin’ 2.使用MySQL.connect的时候没有设置默认编码 3.没有设置python的编码,python2.7默认为...
安装引导里一定要将默认的latin1编码换成utf8编码,不然后面会中文乱码 2,在那台电脑的MySQL中导入本人数据库脚本文件 studentmanager.sql (该文件已打包好)(这里推荐使用navicate for mysql 导入 数据库创建是...
UnicodeEncodeError: ‘latin-1’ codec can’t...use_unicode=1&charset=utf8) Python mysql 中文乱码 的解决方法,有需要的朋友不妨看看。 先来看一段代码:复制代码 代码如下:import MySQLdb db_user = “tiger”