用java将GBK工程转为uft8的方法实例
发布时间 - 2026-01-11 02:45:36 点击率:次本文介绍了用java将GBK工程转为uft8,分享给大家,具体如下:

windows下的默认编码为GBK还有gb2312,如何把gbk的java工程转为utf8的呢,如果直接修改工程编码,其实里面的java文件中中文是会乱码的,写了个批量转换java工程的程序,消遣一下。
为什么要转码?
有些老的项目,或者朋友的项目之前没注意在windows上不是utf8,而你有需要看注释或者什么,总不能一个文件一个文件的去改编码属性吧。
本程序试用范围
gbk的代码,或者gb2312的工程均可以转换
编码转换的思路
本来想做成一个通用的会自动检测编码,自动转换的程序。但是由于判断编码类型不准,所以做成了针对GBK的转换。
- 制定gbk编码把文件流读进来,加载到内存,转为String类型的内容
- 将String内容转为utf8的String
- 将String内容写入文件
核心代码:
public class TransferProject{
public static void transferFile(String pathName,intdepth)throwsException{
File dirFile = new File(pathName);
if (!isValidFile(dirFile)) return;
//获取此目录下的所有文件名与目录名
String[] fileList = dirFile.list();
int currentDepth = depth + 1;
for (int i = 0; i < fileList.length; i++) {
String string = fileList[i];
File file = new File(dirFile.getPath(), string);
String name = file.getName();
//如果是一个目录,搜索深度depth++,输出目录名后,进行递归
if (file.isDirectory()) {
//递归
transferFile(file.getCanonicalPath(), currentDepth);
} else {
if (name.contains(".java") || name.contains(".properties") || name.contains(".xml")) {
readAndWrite(file);
System.out.println(name + " has converted to utf8 ");
}
}
}
}
private static boolean isValidFile(File dirFile)throwsIOException{
if (dirFile.exists()) {
System.out.println("file exist");
return true;
}
if (dirFile.isDirectory()) {
if (dirFile.isFile()) {
System.out.println(dirFile.getCanonicalFile());
}
return true;
}
return false;
}
private static void readAndWrite(File file)throwsException{
String content = FileUtils.readFileByEncode(file.getPath(), "GBK");
FileUtils.writeByBufferedReader(file.getPath(), new String(content.getBytes("UTF-8"), "UTF-8"));
}
public static void main(String[] args)throwsException{
//程序入口,制定src的path
String path = "/Users/mac/Downloads/unit06_jdbc/src";
transferFile(path, 1);
}
}
public class FileUtils{
public static void writeByBufferedReader(String path, String content){
try {
File file = new File(path);
file.delete();
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file, false);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.flush();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public staticStringreadFileByEncode(String path, String chatSet)throwsException{
InputStream input = new FileInputStream(path);
InputStreamReader in = new InputStreamReader(input, chatSet);
BufferedReader reader = new BufferedReader(in);
StringBuffer sb = new StringBuffer();
String line = reader.readLine();
while (line != null) {
sb.append(line);
sb.append("\r\n");
line = reader.readLine();
}
return sb.toString();
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# java
# GBK转为uft8
# java将GBK转为uft8
# 浅谈Java工程读取resources中资源文件路径的问题
# Eclipse 导出可执行Java工程/可执行Jar文件(包含第三方Jar包)
# 一名Java高级工程师需要学什么?
# 一个合格JAVA软件工程师应该具备什么
# JAVA如何获取工程下的文件
# 递归
# 是一个
# 成了
# 你有
# 给大家
# 写了
# 均可
# 想做
# 大家多多
# 批量转换
# 加载
# 目录下
# list
# int
# depth
# currentDepth
# dirFile
# File
# isValidFile
# fileList
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
Laravel如何使用Blade组件和插槽?(Component代码示例)
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
JavaScript如何实现错误处理_try...catch如何捕获异常?
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
node.js报错:Cannot find module 'ejs'的解决办法
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
php485函数参数是什么意思_php485各参数详细说明【介绍】
nodejs redis 发布订阅机制封装实现方法及实例代码
如何用西部建站助手快速创建专业网站?
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
如何在景安云服务器上绑定域名并配置虚拟主机?
JavaScript实现Fly Bird小游戏
Laravel怎么在Controller之外的地方验证数据
Laravel集合Collection怎么用_Laravel集合常用函数详解
如何挑选优质建站一级代理提升网站排名?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何快速查询网站的真实建站时间?
Laravel如何与Inertia.js和Vue/React构建现代单页应用
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
SQL查询语句优化的实用方法总结
Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解
php 三元运算符实例详细介绍
三星网站视频制作教程下载,三星w23网页如何全屏?
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
如何为不同团队 ID 动态生成多个“认领值班”按钮
*服务器网站为何频现安全漏洞?
网站制作企业,网站的banner和导航栏是指什么?
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
如何快速搭建个人网站并优化SEO?
如何用腾讯建站主机快速创建免费网站?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
Linux系统运维自动化项目教程_Ansible批量管理实战
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
浅析上传头像示例及其注意事项
油猴 教程,油猴搜脚本为什么会网页无法显示?
Python并发异常传播_错误处理解析【教程】
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
Laravel如何使用.env文件管理环境变量?(最佳实践)
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何在服务器上三步完成建站并提升流量?

