最近修改了一个Java老项目,因年代久远(大概07、08年开发),源码已不可考,我拿到的是tomcat服务器里正在运行的编译后代码。
好在我前端主要是修改JSP页面代码部分,也因为我修改JSP页面时顺便将原编码GBK改成了UTF-8,结果导致编码与写有sql语言的XML文件编码冲突,影响数据呈现。
项目XML文件的编码有GBK、GB2312、UTF-8,乱成一锅粥。为了统一成UTF-8,需要进入jar包修改XML文件。在试过解开jar包改编码再重新打jar包,代码运行出现500错误后发现用emacs修改编码真是既快又方便还不报错。
我之前没接触过emacs,本次全靠老大口述指导外加自己操作,单改编码是够用了,暂不涉及emacs其他内容哦。
进入emacs修改文件:emacs [文件名]
emacs com.xxx.plugins.databaseupdate.jar
修改文件编码
敲ctrl+x
后敲回车键
,然后敲f键
后输入utf-8
(如果已经输入过可以敲上下键
查找)最后回车
移动光标的文件的第一行编码GBK的位置,修改编码为UTF-8
插句题外话
修改所有插件配置xml文件的编码为UTF-8格式
# 进入目标文件夹,假设是src/a/
cd src/a/
# 遍历文件,用iconv转化编码格式
for f in *.xml; do iconv --from GBK --to UTF-8 $f > $f.1; mv $f.1 $f; done
#用 sed 命令将当前目录下所有 .xml 文件中的 GBK 替换为 UTF-8
# macOS下
sed -i '' 's/GBK/UTF-8/' *.xml
#Linux下:
sed -i 's/GBK/UTF-8/' *.xml