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 默认编码

Eclipse修改编码格式

解决windows文件在linux系统中显示乱码的问题

eclipse怎么设置编码格式

linux下文件编码格式转换方法(gb18030/utf-8)

在linux系统下使用lazarus,ansi和utf8编码格式怎么互相转换? 我需要做一个可以读取windows系统发送来的t