那些年跳过的坑--编码格式(记事本 + WinSCP + MyEclipse)
来源:互联网 发布:telnet端口不通 编辑:程序博客网 时间:2024/06/07 22:59
那些年跳过的坑–编码格式(记事本 + WinSCP + MyEclipse)
背景
公司有一个java开发的项目,部署在Linux下的Tomcat上。目前本人主要做.NET方面的开发,由于员工离职问题,被公司临时安排去修改项目的数据库连接。
根据同事编写的项目部署手册,我需要做一下操作:
- 用WinSCP连接到Linux服务器,找到项目配置文件jdbc.properties,然后修改数据库连接字符串(我只需要改换成新的数据库IP地址)
- 重新启动Tomcat
处理过程(开始挖坑)
- 用WinSCP连接到Linux服务器,找到项目配置文件jdbc.properties
- 直接在WinSCP中双击jdbc.properties文件,文件默认被记事本打开
- 在记事本中修改数据库连接字符串,然后保存
- 重新启动Tomcat
刷新程序界面,没有出现我预想到的界面(界面中没有数据),哪里出问题了呢?
解决问题过程(开始跳坑)
之前没有玩过Linux,并且不熟悉Java项目。
首先怀疑自己重启Tomcat出问题了。查看logs文件夹下的log日志,没有报错。奇怪的是,运行程序(刷新界面)也没有报错,只是界面读不到数据。上网搜索了好多重启Tomcat的命令和方法,都不行。由于暂时排除了,tomcat的原因。
然后怀疑自己连接字符串格式不对。有上网查看java连接oracle的连接字符(本来自己只是修改了IP,格式并没有修改)。最后无果。
折腾了2个小时后,跟之前的同事打电话,他给出一个关键信息。直接在WinSCP中双击jdbc.properties文件修改,可能会出现编码问题。最好是现将jdbc.properties文件下载到本地,修改后,在上传到服务器。欣喜若狂,以为看到了曙光,扒了几口饭就赶紧回去尝试新方案。
回到座位,下载jdbc.properties文件,默认记事本打开,然后修改,上传服务器,重新启动tomcat,刷新页面。——数据依然没有加载出来。
然后开始怀疑新迁移的数据库字符集有问题,就下来就是各种数据库验证了……
最后实在没有办法了,只好使用MyEclipse重新编译程序,编译是直接在MyEclipse中修改jdbc.properties文件,然后生成war,部署。奇迹出现了,程序可以加载出来数据了。搞定了。
详解这个坑
思考整个过程,编译前后,针对jdbc.properties文件的修改唯一不同的就是使用的编辑器不同,一个是使用记事本,一个是MyEclipse。细思极恐,立马查看本机记事本的默认编码格式–GB 2312,而MyEclipse使用的UTF-8。问题原来在这里。为了验证是编码的问题,这一次从linux上下载jdbc.properties,然后使用记事本修改到原来的数据库连接字符串,然后以UTF-8编码格式重新保存,上传服务器,重启Tomcat,程序运行正常。
总结
- 两个文档,肉眼看到的内容一样,但本质可能并不一样(编码格式可能不同)。
- 电脑阅读文档分析的是编码格式,所以人眼觉得相同的两个文档,在电脑看来未必相同。
- 对于修改文档或者配置文件这种事情,尽量使用专业的编辑工具(notepad++等)。
- #### 本案例中,最佳解决方案是在Linux环境中,直接使用vi修改jdbc.properties文件。
- 那些年跳过的坑--编码格式(记事本 + WinSCP + MyEclipse)
- 记事本编码格式浅析
- 记事本编码格式浅析
- 记事本编码格式
- 【React Native】那些年RN上跳过的坑
- XCODE9 跳过的那些坑儿
- 修改myeclipse的编码格式
- 微软记事本所谓的“编码格式” 和文件头
- 关于Windows下记事本中保存编码的格式问题
- win下如何用cmd转换记事本的编码格式
- MyEclipse中设置文件的编码格式
- myeclipse设置容器的编码格式
- 修改Eclipse/MyEclipse项目的编码格式
- 修改myeclipse下的jsp编码格式
- eclipse和Myeclipse的编码格式设置
- 记事本的编码问题
- 跳过那些坑,创业者必备的产品开发知识
- 跳过那些坑,创业者必备的产品开发知识
- NOIP2015运输计划题解报告
- 14个岗位,看完就知道自己在互联网行业该怎么混
- 通过JUnit启动spring加载配置
- XAMPP for LINUX--安装及说明-简单命令
- 设备像素,分辨率 ,设备独立像素,CSS像素
- 那些年跳过的坑--编码格式(记事本 + WinSCP + MyEclipse)
- Hadoop
- Linux 命令(文件和目录管理
- Android里面一些小功能实现(随时更新。。。)
- ACM集训日记-8月24日
- android中 获取WiFi信息并计算wifi的信号强度
- 一些必须知道的JAVA基础知识
- 面试总结-Java基础(一)
- Android开发 之 Camera