用java的流复制文件,并改变编码格式,由ansi改为utf-8格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java的流复制文件,并改变编码格式,由ansi改为utf-8格式相关的知识,希望对你有一定的参考价值。

用java的字节流等流操作类进行文件复制,复制后要求改变编码格式,由ansi改为utf-8格式

楼主需要注意:编码格式是针对字符的,而无法针对字节,因此,如果想使用字节流来实现编码格式的转换的话,是不现实的。需要以字符的形式读取原文件,转换后存储到新的文件中。 编码的转换方式可以使用caoyongzhao_1 的回答的语句来完成。 参考技术A String srcFilePath = "D:\filepath";
String destFilePath = "D:\filepath";
BufferedReader buf = new BufferedReader(new FileInputStream(destFilePath));
PrintWriter pw = new PrintWriter(new FileOutputStream(destFilePath);
String str = null;
while((str = buf.readLine()) != null)
String outStr = new String(str.getBytes("ISO8859-1"),"UTF-8");
pw.write(outStr);

buf.close();
pw.close();本回答被提问者采纳

请问用批处理命令如何将ANSI编码的txt文件批量转换utf8编码的?就右键另存为那种,但是量太大。

之前您回答了一个ANSI转utf-8的,但是用不了。另外一个ANSI转unicode的是可以用的,但是怎么修改一下,可以转成utf-8呢?

参考技术A 不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI/GB2312,跟要处理的文件放一起双击运行cls&echo off&cd /d "%~dp0"
rem 将ANSI编码的txt文本文件转化为UTF-8编码
set #=Any questions&set _=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%_% %z%
set "self=%~f0"
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
echo;%#% +%$%%$%/%_% %z%
pause
exit
#>
$self=get-item -literal $env:self;
$current=$self.Directory.FullName.trimend('\\');
$newfolder=$current+'\\result';
if(-not (test-path -literal $newfolder))[void][IO.Directory]::CreateDirectory($newfolder);
$files=@(dir -literal $current|?('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo]));
if($files.length -ge 1)
    write-host $files[0].FullName.Substring($current.length);
    $oldenc=[Text.Encoding]::GetEncoding('GB2312');
    $newenc=New-Object System.Text.UTF8Encoding $False;
    $newfile=$newfolder+'\\'+$files[0].Name;
    $text=[IO.File]::ReadAllText($files[0].FullName, $oldenc);
    [IO.File]::WriteAllText($newfile, $text, $newenc);

以上是关于用java的流复制文件,并改变编码格式,由ansi改为utf-8格式的主要内容,如果未能解决你的问题,请参考以下文章

VB中MultiByteToWideChar如何调用使得文本格式由ANSI转换成UTF-8

该文件含有unicode格式的字符,当文件保存为ANSI编码的文本文件时,该字符将丢失.

如何将csv文件转换成Ansi编码的文件?

如何判断一个文件的编码格式,UNICODE,BIG5,毕业设计

win10文本文档默认为啥是UTF-8,而且改变不了编码格式

Java中如何将gbk装换为ansi