将整个工程的GBK转为utf-8格式
eclipse将整个工程转为utf-8时原先中文注释会变为乱码,13年时写了个脚本将整个文件的java以及配置文件转为utf-8格式,下面是代码
package com.code.pd;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import org.apache.commons.io.IOUtils;
/**
*
*
*
* @author lipeng
* @since 1.0
* @version 2013-10-24 lipeng
*/
public class GbkToUtf {
/**
* @param args
*/
public static void main(String[] args) {
GbkToUtf.readfile("D:\\workspace\\JavaUtils\\src\\com\\code\\common");
}
public static void readfile(String filePath) {
try {
File file = new File(filePath);
if (!file.isDirectory()) {
transferCharset(file);
} else if (file.isDirectory()) {
System.out.println("文件夹");
String[] filelist = file.list();
for (int i = 0; i < filelist.length; i++) {
File readfile = new File(filePath + "\\" + filelist[i]);
if (!readfile.isDirectory()) {
transferCharset(readfile);
} else if (readfile.isDirectory()) {
if(!"excel,jdbc,nosql,spring".contains( filelist[i])){
readfile(filePath + "\\" + filelist[i]);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void transferCharset(File file){
try {
String charset=codeString(file);
if("GBK".equals(codeString(file))){
System.out.println(file.getAbsolutePath()+"------------"+charset);
String content = getFileContentWithCharsetName(file, "GBK");
saveFileWithCharsetName(file, "UTF-8", content);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void saveFileWithCharsetName(File file, String charsetName, String content)
throws Exception {
FileOutputStream fileOut = new FileOutputStream(file);
// CharsetDecoder
OutputStreamWriter outWrite = new OutputStreamWriter(fileOut, Charset.forName(charsetName));
outWrite.write(content);
outWrite.close();
}
/**
* 判断文件的编码格式
* @param fileName :file
* @return 文件编码格式
* @throws Exception
*/
public static String codeString(File fileName) throws Exception{
BufferedInputStream bin = new BufferedInputStream(
new FileInputStream(fileName));
int p = (bin.read() << 8) + bin.read();
String code = null;
switch (p) {
case 0xefbb:
code = "UTF-8";
break;
case 0xfffe:
code = "Unicode";
break;
case 0xfeff:
code = "UTF-16BE";
break;
default:
code = "GBK";
}
IOUtils.closeQuietly(bin);
return code;
}
public static String getFileContentWithCharsetName(File file, String charsetName)
throws Exception {
FileInputStream fileIn = new FileInputStream(file);
// CharsetDecoder
InputStreamReader inRead = new InputStreamReader(fileIn, Charset.forName(charsetName));
int size = (int) (file.length());
char[] chs = new char[size];
inRead.read(chs);
String str = new String(chs).trim();
inRead.close();
return str;
}
}
将整个工程的GBK转为utf-8格式的更多相关文章
- 目标检测 的标注数据 .xml 转为 tfrecord 的格式用于 TensorFlow 训练
将目标检测 的标注数据 .xml 转为 tfrecord 的格式用于 TensorFlow 训练. import xml.etree.ElementTree as ET import numpy as ...
- 秒转为时分秒格式js
秒转为时分秒格式 function formatSeconds(value) { if(value == undefined) { value = 0; } var second = parseInt ...
- 批量将Java源代码文件的编码从GBK转为UTF-8
主要参考: http://blog.csdn.net/liu_qiqi/article/details/38706497 使用common io批量将java编码从GBK转UTF-8 http://w ...
- Eclipse:批量将Java源代码文件的编码从GBK转为UTF-8
很简单的几行代码,就可以批量将GBK格式的java文件转为UTF-8格式. 基本上所有文本文件的编码转换都可以采用这种方式. import java.io.File; import java.io.I ...
- 小程序:将gbk转为utf-8
是否有过写了半天代码,发现竟然用的GBK编码,然后到主UTF-8上发现中文全部变成乱码了... 下面这个程序,只要输入src的位置,瞬间转换成utf-8 package tools; import j ...
- Shell脚本把文件从GBK转为UTF-8编码
http://www.jb51.net/article/51308.htm 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ...
- 如何将Java源代码文件的编码从GBK转为UTF-8?
有时候看到有意思的demo,在头痛导入项目的编码和workspace的编码不一样的时候 我试着将 笔记本打开一个类一个类的复制, demo的类比较少的时候 可以忍受,demo的类多的时候 除了靠之外 ...
- scrapy爬虫成长日记之创建工程-抽取数据-保存为json格式的数据
在安装完scrapy以后,相信大家都会跃跃欲试想定制一个自己的爬虫吧?我也不例外,下面详细记录一下定制一个scrapy工程都需要哪些步骤.如果你还没有安装好scrapy,又或者为scrapy的安装感到 ...
- 使用python把gdb格式的文本文件转为utf-8的格式
# coding=utf-8 from os import listdir if __name__ =="__main__": d=u"D:\\files\\" ...
- 后台返回的base64的图片格式,前端如何转为普通的图片格式
在上一篇的博客当中,写了前端如何将普通的图片格式转为base64的图片,今天开发的时候遇到了后台返回的图片格式是base64的,我这边需要把base64的图片格式转为普通的,搜了一下js的方法,感觉很 ...
随机推荐
- 百度地图API 循环添加信息窗口问题
百度地图API循环添加信息窗口,会出现所有消息只显示在第一个窗口的位置的问题.并且信息内容相同 解决方法1 转载自 https://blog.csdn.net/zz_mm/article/detail ...
- 为什么Python的多线程是假的呢?
https://www.zhihu.com/question/23474039/answer/269526476
- Android7.0 配置JACK支持多用户同时编译
# Android7.0 配置JACK支持多用户同时编译 reference: https://blog.csdn.net/whorus1/article/details/80364772 https ...
- shell 根据 指定列 进行 去除 重复行
根据指定列进行去除重复行 这里的重复是指如果两行的某一列数据相同,则认为是重复数据. 例如:第1行与第2行数据,其中的第2列(以- 作为分隔符)明显是重复的. 100069 - ARM Compile ...
- 使用jsp+servlet+mysql用户管理系统之用户注册-----------使用简单三层结构分析页面显示层(view),业务逻辑层(service),数据持久层(dao)
View层:jsp+servlet: jsp: <%@ page language="java" contentType="text/html; charset=U ...
- DASCTF X GFCTF 2024|四月开启第一局 [PWN]详解
DASCTF X GFCTF 2024|四月开启第一局[PWN] wp(详解) 1.dynamic_but_static 题目保护情况 64位程序,没有开canary和pie保护,got表可改 64位 ...
- 【Playwright+Python】系列教程(五)元素定位
一.常见元素定位 定位器是 Playwright 自动等待和重试能力的核心部分.简而言之,定位器代表了一种随时在页面上查找元素的方法,以下是常用的内置定位器. 1.按角色定位 按显式和隐式可访问性属性 ...
- Spring MVC 中 HttpMessageConverter 转换器
1. Spring MVC 中 HttpMessageConverter 转换器 @ 目录 1. Spring MVC 中 HttpMessageConverter 转换器 2. 补充:什么是 HTT ...
- 经典面试题函数柯里化: add(1)(2)(3) = 6
function currying() { const args = Array.prototype.slice.call(arguments); const inner = function () ...
- Profinet转Modbus模块减轻通讯编程工作量实现Modbus通讯
巴图自动化PN转Modbus模块(BT-MDPN10)能够实现Profinet协议与Modbus协议之间的转换,使得Profinet协议设备与Modbus协议设备进行连接并能够相互通信. 通过使用巴图 ...