java专业编码_java编码中的坑(记一次解决编码BUG的经历) - 贪吃蛇学院-专业IT技术平台...
1.2016年11月15日(周二),我被经理外派出差渝北金开大道,任务:解决那边的一个数据库乱码异常
2.那边的负责人描述:数据库原是utf8编码,他为了兼容emoji表情,改为utf8mb4,之后出现编码异常
3.数据库是mysql
4.程序人生第一次review别人的代码
第一步:UTF8与UTF8MB4编码的关系
在mysql中,utf8mb4是utf8的子集,之间是可以切换的
第二步:检查异常字符
出现编码异常的只有中文
如果是emoji表情编码乱码还可以解释,为啥是中文乱码
中文在utf8mb4和utf8中同为三个字节
第三步:异常排查
1.备份数据,转存到备用测试服务器
2.在测试服存储中文字符,一切正常
3.检查正式服务器和测试服务器的Nginx、Tomcat配置,数据库链接url,一模一样
4.我要求他打印出sql执行情况,console只打印sql的配置:http://www.zuidaima.com/blog/2998561964854272.htm,catalina.log中显示insert时中文已经乱码了
PS:需要检查sql执行情况时,写个log4j.properties传到服务器上,重启一下就可以看到了,不需要了删除即可
5.我冤枉了数据库
难道是打包的问题?
1.检查eclipse的编码,还是utf8,检测分割符,是unix的分隔符,完全符合linux的环境
2.重新打个包传到测试服务器,经测试乱码
3.好吧,数据库接到测试服务器,本地开启调试,中文乱码
代码有问题!
我问了一句那边的负责人:你发布最后一个版本时写了代码没
他说写了的,然后把代码翻给我看
web.xml的过滤器中约定了全文编码为utf8
在java代码中又处理一次编码
然而就是这个多余的编码
source.getBytes(),"UTF-8"
解释这句代码:getBytes不传编码,默认会按照ISO-8859-1来解析,再转回UTF8
ISO-8859-1是java默认的编码方式
把他的代码注释传到测试服,测试,正常了。
总结:
mysql如果是utf8和utf8mb4切换引发编码异常的,都好好检查自己的代码,这个锅,mysql和eclipse都不背。
java专业编码_java编码中的坑(记一次解决编码BUG的经历) - 贪吃蛇学院-专业IT技术平台...相关推荐
- JAVA飞信_java调用飞信接口发短信 - 贪吃蛇学院-专业IT技术平台
java调用飞信接口发短信,看到挺好的,有利于大家做毕业设计加亮点,就发给大家了(新人发帖,不会发多个文件名,测试类就放这了) 需要这3个jar包: commons-codec-1.4.jar com ...
- java贪吃蛇客户端服务器_java Socket套接字TCP编程开发服务端和客户端之间的通信 - 贪吃蛇学院-专业IT技术平台...
超级简单,没有太多实质内容的Socket服务端,客户端小程序 先运行server 再运行client OK 服务端代码如下: public class Server { public static v ...
- java贪吃蛇代码idea_IntelliJ idea使用笔记 - 贪吃蛇学院-专业IT技术平台
从eclipse切换到Idea有一周时间了,真真实实感受到了idea的强大,我曾经想从eclipse切换到idea,因为使用习惯的问题放弃了,这次狠下心使用了一周,慢慢熟悉了这个强大的开发工具.在此记 ...
- easyui java代码生成器,easyui+jdbc+xml模板开发自动化生成报表的java工具 - 贪吃蛇学院-专业IT技术平台...
ps:看到有同学问了一下问题,做一下答复,该实现不是web项目,大家只需要将代码集成到web项目中即可,原项目太大,不便上传.还有 jar包自己找啊 呵呵 采用easyui+jdbc+xml模板生成报 ...
- java cxf 搭soa,WebService CXF入门问题 SOA 骑着上帝去环游 - 贪吃蛇学院-专业IT技术平台...
package deng; import javax.xml.ws.Endpoint; import com.founder.ws.HelloWorld; import com.founder.ws. ...
- sscom 中文显示 乱码_SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码 Web程序 - 贪吃蛇学院-专业IT技术平台...
场景: 在实际运用场景中,当前台发起请求后,我们需要从后台返回数据给前台,这时,如果返回的数据中包含中文,则经常会出现在后台查询出来都是好好,但是传输回去就莫名的乱码了,而且,我们明明已经在 web. ...
- 东方通如何查看版本linux命令,东方通tongweb linux安装 Web程序 - 贪吃蛇学院-专业IT技术平台...
1.把安装的bin文件和license.dat文件放到/opt目录下 2.运行$sh Install_TW5.0.0.0_Standard_Linux.bin -i console 命令在 Linux ...
- 贪吃蛇程序 php,php,函数 Web程序 - 贪吃蛇学院-专业IT技术平台
1.函数定义: 函数就是将一些重复使用到的功能写在一个独立的代码块中,在需要时单独调用.创建函数的基本语法格式为: function fun_name($str1,$str2,,,,$strn){ f ...
- php点击字切换验证码,PHP生成图片验证码、点击切换实例 Web程序 - 贪吃蛇学院-专业IT技术平台...
http://www.jb51.net/article/51506.htm 现在让我们来看下 PHP 代码 复制代码代码如下: session_start(); function random($le ...
最新文章
- docker 搭建私有仓库
- java根据模板生成PDF
- clipse中Access restriction: The type ‘XXX’ is not API 解决
- Android 驱动开发(14)---深入学习Linux Device Tree
- html页面跳转方式 + 跳转传参
- 显示器显示颜色差,导致BUG一例
- 深入浅出Python——Python高级语法之面向对象
- 2020 IJCAI 接受论文 list 分类排列(一)
- 如何将pdf文件转换成图片格式,插入到word中
- python3读取键盘输入_Python读取键盘输入
- 微信小程序开发实战(12):滑杆组件(slider)和form组件
- Ubuntu 18.04 WPS导出pdf部分线条变粗(okular的小问题)
- 分布式协调器ZooKeeper3.4—管理员手册
- C语言int类型和float浮点型数据在内存中的存储方式
- Open vSwitch概述
- Kafka生产者与消费者详解
- 百度中的高级搜索功能
- 转载一篇文章,纪念我的童年~ 炮竹
- IDEA运行Run和services
- linux 看硬盘运行时间长,Linux服务器查看硬盘通电时长命令 确保服务器硬件配置...
热门文章
- RT-Thread优化智能车设计
- 2021年春季学期-信号与系统-第十次作业参考答案-第一小题
- 粘贴铜箔简易实验电路制作
- html中空标签的有什么,HTML常用标签,什么是空标签和可替换标签
- python logging.getlogger_logging.getLogger与logger的父子关系
- android本地xml文件怎么打开,android 打开本地文件
- linux open()调用的注意事项
- 切换不了摄像头 高拍仪_手机摄像头模组支架保护膜的变革之路
- 鸿蒙智慧屏安卓内核,一切都是假象?荣耀智慧屏翻车,鸿蒙只是安卓的皮肤?...
- 流 java_java8——使用流