Windows系统下Eclipse下默认的编码格式是啥?GBK?已有的工程文件转换为UTF-8之后为何不能正确读取?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows系统下Eclipse下默认的编码格式是啥?GBK?已有的工程文件转换为UTF-8之后为何不能正确读取?相关的知识,希望对你有一定的参考价值。
那默认的GBK格式文件希望转换为UTF-8,一般如何转?我用ReplacePioneer转,转了两次,打开后还是乱码。原始的GBK不知道是gb2312-raw,还是其他的?
参考技术A 通常是GB2312或者GB18032 因为在默认情况下你输入的中文都是GB2312的 在环境也是GB2312才能正确显示,你吧工程装换为UTF-8后只是环境变了 文字还都是GB2312的 所以会乱码。。。你得重新输入文字或者把环境改回GB2312你要把代码转编码的话 自己动手改改就好了,要是文本转编码的话 可以自己写个程序跑一遍应该就好了,这个你自己改改看可以用不?
package util;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
/**
* @author louis
*
* version 2010-8-8
*/
public class ChangeEncode
String datasorce = "G:\\main\\more";
String tagString = "G:\\main\\more_2312";
// 转换文本文档的编码格式。
public ChangeEncode()
// 要读的原文件。
File source = new File(datasorce);
File[] file = source.listFiles();
System.out.println(file[0].getName());
FileInputStream fileInputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader bufferedReader = null;
// 要写入的新文件。
File tag = new File(tagString);
String[] nameString = source.list();
FileOutputStream fileOutputStream = null;
OutputStreamWriter outputStreamWriter = null;
BufferedWriter bufferedWriter = null;
for (int i = 0; i < file.length; i++)
try
// 要读的原文件。
fileInputStream = new FileInputStream(file[i]);
try
// 原来的文本的编码格式是gb2312
inputStreamReader = new InputStreamReader(fileInputStream, "utf8");
catch (UnsupportedEncodingException e3)
// TODO Auto-generated catch block
e3.printStackTrace();
bufferedReader = new BufferedReader(inputStreamReader);
// 要写入的新文件。
fileOutputStream = new FileOutputStream(tagString + File.separator + nameString[i]);
try
// 转换后的文本的编码格式是utf-8。
outputStreamWriter = new OutputStreamWriter(fileOutputStream, "gb2312");
catch (UnsupportedEncodingException e2)
// TODO Auto-generated catch block
e2.printStackTrace();
bufferedWriter = new BufferedWriter(outputStreamWriter);
String line = bufferedReader.readLine();
try
while (line != null)
bufferedWriter.write(line);
line = bufferedReader.readLine();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
try
bufferedWriter.close();
outputStreamWriter.close();
fileOutputStream.close();
catch (IOException e1)
// TODO Auto-generated catch block
e1.printStackTrace();
try
bufferedReader.close();
inputStreamReader.close();
fileInputStream.close();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
catch (FileNotFoundException e)
// TODO Auto-generated catch block
e.printStackTrace();
catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();
public static void main(String[] args)
ChangeEncode changeEncode = new ChangeEncode();
参考技术B 你先把中文粘贴出来,然后设置文件编码,再把文字复制回来,保存 参考技术C
用notepad++转,如图
解决windows文件在linux系统中显示乱码的问题
问题:
- 在Windows下用matlab写的代码(.m)到Linux(centos)下,注释的中文全是乱码。
原因:
Windows下默认使用的是GB2312编码,Linux默认使用的是UTF-8。 所以在Windows下产生的代码是GB2312编码,在Linux下当然识别为乱码 。
解决方法:
1、直接对文件编码格式的转码,需要不断使用命令
使用linux下的iconv
命令改变文件的编码(编码转换):
test1.m由GB2312转换成UTF-8(windows下matlab的代码在linux下运行)
iconv -f GB2312 -t UTF-8 test1.m -o test1.m
------------原本编码-------新编码---原文件名-------新生成文件名
以上是关于Windows系统下Eclipse下默认的编码格式是啥?GBK?已有的工程文件转换为UTF-8之后为何不能正确读取?的主要内容,如果未能解决你的问题,请参考以下文章
如何为 Eclipse 中的 Java 源文件设置为 UTF-8 默认编码
linux下文件编码格式转换方法(gb18030/utf-8)
在linux系统下使用lazarus,ansi和utf8编码格式怎么互相转换? 我需要做一个可以读取windows系统发送来的t