之前讨论过如何将sqlserver项目搬迁到Mysql中,本篇来讲述下,怎么把现有GBK项目改成UTF-8项目。
一、场景
公司有两个项目,两个项目小组做的,分别用的是GBK和UTF-8编码,现需要将两个项目部署在同一个服务器上,同一个Tomcat,具体原因,不知呀,这样讲导致GBK或者UTF-8必然有一个会乱码。大家都知道,UTF-8能识别大部分的语言,是常用的,推荐使用的编码(以后大家记得用UTF-8,不然很麻烦),故,现需要将GBK项目转为UTF-8。项目为jsp+java,工具是eclipse。
二、思路
- 手动,将文件内容复制到文本文件中,在从文本文件复制到utf-8项目文件中。
- 前后端交互时,将中文参数用encodeURI编码后,再传递,这样能处理乱码问题。
以上方式不但麻烦,繁琐,而且有失程序员的身份。我们可是程序员,应该用程序员的方式来解决问题。如何解决?是否可以通过java IO流。创建GBK字符流,读入GBK文件,将GBK字符转为UTF字符,写入输出流,生成文件。接下来我们就来实现它吧。
三、解决方案
首先假设项目A为我们的源项目,复制一个一模一样的项目作为备份项目B。将源项目A的编码方式改为UTF-8。这时源项目A中src下代码都出现乱码了吧,webroot下jsp文件还是为GBK文件。这里分两部分来讲。
webroot下的文件,将所有jsp文件页头部分的GBK改为UTF-8,详情如下:
- charset=(GBK|GB2312) ->charset=utf-8 jsp/html
- charset=("GBK"|"GB2312") -> charset="utf-8" jsp/html
- pageEncoding=("GBK"|"GB2312")->pageEncoding="UTF-8" jsp/html
- pageEncoding=(GBK|GB2312)->pageEncoding=UTF-8 jsp/html
我们可以通过eclipse的search功能,search-》File...如下图:
开启正则表达式,大小写不敏感,图中复选框错了
点击Replace出现替换框。
点击OK&#x