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

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

不清楚你的实际文件/情况,仅以问题中的说明及猜测为据;以下代码复制粘贴到记事本,另存为xxbat,编码选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

#>

$oldenc=[TextEncoding]::GetEncoding('GB2312');

$newenc=[TextEncoding]::GetEncoding('UTF-8');

$self=get-item -literal $env:self;

$current=$selfDirectoryFullNametrimend('\');

$newfolder=$current+'\#result';

if(-not (test-path -literal $newfolder)){[void][IODirectory]::CreateDirectory($newfolder);}

$files=@(dir -literal $current|{('txt' -eq $_Extension) -and ($_ -is [SystemIOFileInfo])});

if($fileslength -ge 1){

    write-host $files[0]FullNameSubstring($currentlength);

    $newfile=$newfolder+'\'+$files[0]Name;

    $text=[IOFile]::ReadAllText($files[0]FullName, $oldenc);

    [IOFile]::WriteAllText($newfile, $text, $newenc);

}

centos7数据格式文件怎么转成纯文本?1

方法是利用vi编辑器,打开需要转码的文件。 :set fileencoding 这样可以查看文件当前的编码格式。 :set fileencoding=utf-8 说这样能把当前的文件转码成utf-8。但是失败了,直接打开还是显示乱码,更别说浏览器浏览的页面了。而且即使能转码成功,站点目录下的文本文件那么多,不可能一个个挨个打开然后这样设置吧,工作量巨大。

2

方法是利用iconv。iconv系统默认就已经安装了的。通过命令: Shell代码 iconv -f gb2312 -t utf-8 abchtml 这样确实把abchtml的编码转换成了utf-8。这样是将转换后的文本显示在了终端上,也可以: Shell代码 iconv -f gb2312 -t utf-8 abchtml -o abcht

批量转换文件的编码当然是使用命令来转换咯,如果文件太多还可以写一个shell脚本进行批量转换,Linux系统中转换文件编码格式的命令是iconv。iconv命令的使用介绍一下,iconv命令很简单,记住它的三个参数就可以了,下面是它的三个参数:

-f参数:表示from,就是原本的编码格式

-t参数:表示to,就是后来的新编码

-o参数:表示输出文件,就是转换编码后的新文件的文件名,如果没有这个参数新文件会将原来的文件覆盖掉。

下面是将GB2312编码的文件转换成UTF-8编码的例子:

iconv

-f

gb2312

-t

utf8

mygb2312txt

-o

myutf8txt

这个例子中mygb2412txt就是要转换的文件,myutf8txt就是转换后的新文件。

linux下文本文件格式转换有不同情景:

如果你需要在Linux 中 *** 作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换。

查看文件编码

在Linux中查看文件编码可以通过以下几种方式:

1在Vim 中可以直接查看文件编码

Shell代码

:set fileencoding

即可显示文件编码格式。

如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在

~/vimrc 文件中添加以下内容:

Shell代码

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照 fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。

2 enca (如果你的系统中没有安装这个命令,可以用sudo yum install -y enca 安装 )查看文件编码

$ enca filename

filename: Universal transformation format 8 bits; UTF-8

CRLF line terminators

需要说明一点的是,enca对某些GBK编码的文件识别的不是很好,识别时会出现:

Unrecognized encoding

文件编码转换

1在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式

Shell代码

:set fileencoding=utf-8

2 enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码, *** 作如下

enconv -L zh_CN -x UTF-8 filename

3 iconv 转换,iconv的命令格式如下:

iconv -f encoding -t encoding inputfile

比如将一个UTF-8 编码的文件转换成GBK编码

iconv -f GBK -t UTF-8 file1 -o file2

在windows下编写好的shell脚本,在linux下执行时,有时候会报错找不到/r。

原因:Unix及类Unix系统里,每行结尾只有换行“\n”,Windows系统里面,每行结尾是换行+回车“\n\r”,编码格式不一样。

windows文件格式dos

linux文件格式unix

解决方法:修改文件的编码。

在linux上用vi打开文件

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

在 Linux 做开发或者系统管理遇到乱码是经常的事情,主要windows下中文的默认编码是bg2312,而 linux下是utf-8。很多时候 涉及到和windows平台系统的通信免不了编码的转化,可能大部分人都用iconv库函数(包含在glib中)和iconv命令来执行编码转换,即:

iconv -f gb18030 -t utf-8 file1txt -o file2txt

说实话这个命令不好使,一方面容易重复转换,另一方面不支持通配符,无法成批转 换,文件少了还好说,要是一大堆文件岂不是要累死?

今天我要推荐的是另一个 Shell 下编码转换工具enca。用它不仅可以转换编码,还可以查看文件的原始编码,而且还支持成批转换。使用上也比iconv方便一些。安装enca很简单,一般用源安装就行了,enca用法如下:

enca -L 当前语言 文件名

enca -L zh_CN file //检查文件的编码

enca -L 当前语言 -x 目标编码 文件名

enca -L zh_CN -x UTF-8 file //将文件编码转换为”UTF-8″编码

enca -L zh_CN -x UTF-8 < file1 > file2 //如果不想覆盖原文件可以这样

除了有检查文件编码的功能以外,”enca”还有一个好处就是如果文件本来就是你要转换的那种编码,它不会报错,还是会print出结果来, 而”iconv”则会报错。这对于脚本编写是比较方便的事情。

输入: locale

输出 : LANG=zh_CNUTF-8

LC_CTYPE="zh_CNUTF-8"

LC_NUMERIC="zh_CNUTF-8"

LC_TIME="zh_CNUTF-8"

LC_COLLATE="zh_CNUTF-8"

LC_MONETARY="zh_CNUTF-8"

LC_MESSAGES="zh_CNUTF-8"

LC_PAPER="zh_CNUTF-8"

LC_NAME="zh_CNUTF-8"

LC_ADDRESS="zh_CNUTF-8"

LC_TELEPHONE="zh_CNUTF-8"

LC_MEASUREMENT="zh_CNUTF-8"

LC_IDENTIFICATION="zh_CNUTF-8"

LC_ALL=

说明系统的中文编码是采用utf8的,那么为了在xshell中正常的显示中文,我们要把xshell编码方式改成utf8,

[文件]-->[打开]-->在打开的session中选择连接的那个 ,点击properties -> [Terminal ] ,在右边的translation先选择utf8就可以啦

以上就是关于请问用批处理命令如何将ANSI编码的txt文件批量转换utf8编码的就右键另存为那种,但是量太大。全部的内容,包括:请问用批处理命令如何将ANSI编码的txt文件批量转换utf8编码的就右键另存为那种,但是量太大。、centos7数据格式文件怎么转成纯文本、如何批量修改linux 文件编码格式等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9861589.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存