批处理 文档编码转换 ANSI UTF-8

16 篇文章 2 订阅

代码如下

复制粘贴,保存为bat,把需要转换的文档拖动到这个bat上面打开

ANSI转UTF-8 直接用

UTF-8转ANSI 将下方标红的数字调换位置即可

::注释
::code1=ANSI(GB2312)
::code2=Big5
::code3=Shift_JIS
::code4=EUC-KR
::code5=UTF-8
::code6=Unicode
@echo off & setlocal enabledelayedexpansion
::设置文件转换前编码类型,请参考上面编码序号,序号5即指code5也就是UTF-8编码
set aaa=1
::设置文件转换后编码类型,请参考上面编码序号,序号1即指code1也就是ANSI(GB2312)编码
set bbb=5
::设置要转换的文件名
set file=%~nx1
set wfiles=%file%
::开始转换
echo !aaa!|findstr /be "[1-6]" >nul ||goto :eof
echo !bbb!|findstr /be "[1-6]" >nul ||goto :eof
if "!aaa!" == "!bbb!" goto :eof
echo>MakeBOM.vbs Set objFSO = CreateObject("Scripting.FileSystemObject")
echo>> MakeBOM.vbs Set objFile = objFSO.CreateTextFile("Unicode.BOM",,true)
cscript //Nologo MakeBOM.vbs
set codepth=编码转换后
md %codepth%\tmp
:loop
set vvv=!aaa!
if "!aaa!" == "6" set vvv=!bbb!
for /f "tokens=%vvv%" %%a in ("936 950 932 949 65001") do (reg add "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /v CodePage /t REG_DWORD /d %%a /f >nul)
if not "!aaa!" == "6" (
if not "!bbb!" == "6" (
start /wait /min cmd /u /c "for %%a in (%%wfiles%%) do copy Unicode.BOM tmpfile.tmp&type "%%~fa" >> tmpfile.tmp&move /y tmpfile.tmp %codepth%\tmp\"%%~nxa""
set aaa=6
set wfiles=%codepth%\tmp\*
goto loop
)
)
if "!bbb!" == "6" (
start /wait /min cmd /u /c "for %%a in (%%wfiles%%) do copy Unicode.BOM tmpfile.tmp&type "%%~fa" >> tmpfile.tmp&move /y tmpfile.tmp %codepth%\"%%~nxa""
) else (start /wait /min cmd /c "for %%a in (%%wfiles%%) do type "%%~fa" > %codepth%\"%%~nxa"")
reg delete "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /v CodePage /f >nul
del MakeBOM.vbs
del Unicode.BOM
move /y "%codepth%\%file%" "%file%"
rd /s /q "%codepth%"
pause

效果:

用 文本文档-另存为 可以查看和改变文档的编码

可见文件的编码已经转换成功

  • 8
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
### 回答1: 可以使用Python内置的encode()函数将ANSI编码转换UTF-8编码。具体操作如下: 1. 打开ANSI编码文件,读取文件内容。 2. 使用encode()函数将文件内容转换UTF-8编码。 3. 将转换后的内容入新的文件中,保存为UTF-8编码文件。 示例代码如下: ```python # 打开ANSI编码文件 with open('ansi.txt', 'r', encoding='ansi') as f: content = f.read() # 将ANSI编码转换UTF-8编码 utf8_content = content.encode('utf-8') # 将转换后的内容入新的文件中 with open('utf8.txt', 'w', encoding='utf-8') as f: f.write(utf8_content.decode('utf-8')) ``` 注意:在使用encode()函数将ANSI编码转换UTF-8编码时,需要先将文件内容解码为Unicode字符串,然后再进行编码。在将转换后的内容入新的文件中时,需要将Unicode字符串再次编码UTF-8编码。 ### 回答2: ANSI编码UTF-8编码是两种不同的字符编码方式,其中ANSI编码是在Windows下常用的字符编码方式,而UTF-8编码是一种通用的字符编码方式。因此,如果需要将ANSI编码转为UTF-8编码,可以通过以下步骤实现。 首先,需要使用Python中的open()函数打开待转换ANSI编码文件,并指定字符编码ANSI,例如: with open('file.txt', 'r', encoding='ANSI') as f: content = f.read() 接着,可以将读取的文件内容使用encode()方法进行UTF-8编码,例如: utf8_content = content.encode('utf-8') 最后,将转换后的内容入到新文件中,例如: with open('new_file.txt', 'w', encoding='utf-8') as f: f.write(utf8_content.decode('utf-8')) 需要注意的是,在将ANSI编码转换UTF-8编码时,需要确保两种编码方式的字符集是一致的,否则可能会导致转换失败或出现乱码的情况。此外,在使用encode()和decode()方法时,需要指定相应的字符编码方式,否则也可能会产生编码错误或乱码的问题。 通过以上操作,就可以将ANSI编码转换UTF-8编码了。这一过程并不难,但需要特别注意编码方式是否正确。 ### 回答3: Python中有许多方法可以将ANSI编码转换UTF-8编码ANSI编码通常是指Windows默认的编码格式,而UTF-8编码则是一种常用的Unicode编码格式。 以下是一些将ANSI编码转换UTF-8编码的方法: 1. 使用Python内置的编码方法 使用Python内置的encode()方法可以将ANSI编码转换UTF-8编码。示例代码如下: ```python ansi_text = '你好,世界!' utf8_text = ansi_text.encode('utf-8') print(utf8_text) ``` 2. 使用第三方库 Python中有许多第三方库可以用于编码转换。常用的库包括chardet、iconv、iconv-lite等。 ```python import chardet ansi_text = '你好,世界!' encoding = chardet.detect(ansi_text)['encoding'] utf8_text = ansi_text.encode(encoding).decode('utf-8') print(utf8_text) ``` 3. 使用操作系统的命令行工具 在Windows下,可以使用命令行工具iconv来进行编码转换。先安装iconv,并将路径添加到环境变量,然后使用以下命令进行转换: ```python import os ansi_text = '你好,世界!' utf8_text = os.popen(f'iconv -f GBK -t UTF-8 <<< {ansi_text}').read().strip() print(utf8_text) ``` 总之,无论使用Python内置的方法还是第三方库或者操作系统的命令行工具,转换ANSI编码UTF-8编码是十分简单的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值