本文目录导读:

我来介绍几种常用的脚本来转换文本编码为UTF-8(最通用的编码格式):
使用 iconv (Linux/macOS)
# 基本用法
iconv -f 原编码 -t UTF-8 输入文件 > 输出文件
# 示例:将GBK编码转为UTF-8
iconv -f GBK -t UTF-8 source.txt > target.txt
# 批量转换当前目录下所有.txt文件
for file in *.txt; do
iconv -f GBK -t UTF-8 "$file" > "utf8_$file"
done
使用 Python 脚本
#!/usr/bin/env python3
import os
import sys
def convert_to_utf8(file_path, source_encoding='auto'):
try:
# 读取文件
with open(file_path, 'rb') as f:
content = f.read()
# 自动检测编码
if source_encoding == 'auto':
import chardet
detected = chardet.detect(content)
source_encoding = detected['encoding']
# 解码并重新编码为UTF-8
text = content.decode(source_encoding)
with open(file_path, 'w', encoding='utf-8') as f:
f.write(text)
print(f"已转换: {file_path} ({source_encoding} -> UTF-8)")
except Exception as e:
print(f"转换失败 {file_path}: {e}")
# 使用示例
if __name__ == "__main__":
convert_to_utf8("example.txt", "gbk") # 指定编码
# 或
convert_to_utf8("example.txt") # 自动检测
使用 PowerShell (Windows)
# 基本命令
Get-Content -Path "原文件.txt" -Encoding 原编码 | Out-File -FilePath "新文件.txt" -Encoding utf8
# 示例:ANSI转UTF-8
Get-Content -Path "source.txt" -Encoding Default | Out-File -FilePath "target.txt" -Encoding utf8
# 批量处理
Get-ChildItem -Path "C:\path\to\files" -Filter "*.txt" | ForEach-Object {
$content = Get-Content -Path $_.FullName -Encoding Default
$newPath = Join-Path $_.Directory "utf8_$($_.Name)"
$content | Out-File -FilePath $newPath -Encoding utf8
}
使用 Node.js 脚本
const fs = require('fs');
const iconv = require('iconv-lite');
// 安装依赖:npm install iconv-lite
function convertToUtf8(inputFile, outputFile, sourceEncoding) {
// 读取原始文件
const buffer = fs.readFileSync(inputFile);
// 转换为UTF-8
const text = iconv.decode(buffer, sourceEncoding);
fs.writeFileSync(outputFile, text, 'utf-8');
console.log(`已转换: ${inputFile} -> ${outputFile}`);
}
// 使用
convertToUtf8('source.txt', 'target.txt', 'gbk');
批量转换脚本(综合版本)
#!/usr/bin/env python3
"""
文本编码批量转换工具
支持递归处理目录
"""
import os
import sys
import chardet
def detect_encoding(file_path):
"""检测文件编码"""
with open(file_path, 'rb') as f:
raw_data = f.read(10000) # 只读取前10000字节
result = chardet.detect(raw_data)
return result['encoding']
def convert_directory_to_utf8(directory_path, extensions=None):
"""批量转换目录下的所有文件"""
if extensions is None:
extensions = ['.txt', '.csv', '.html', '.xml', '.json', '.log']
for root, dirs, files in os.walk(directory_path):
for file in files:
if any(file.endswith(ext) for ext in extensions):
file_path = os.path.join(root, file)
try:
# 检测编码
encoding = detect_encoding(file_path)
# 读取并转换
with open(file_path, 'r', encoding=encoding) as f:
content = f.read()
# 写回UTF-8
with open(file_path, 'w', encoding='utf-8') as f:
f.write(content)
print(f"✓ {file_path} ({encoding} -> UTF-8)")
except Exception as e:
print(f"✗ {file_path}: {e}")
# 使用
if __name__ == "__main__":
if len(sys.argv) > 1:
target_dir = sys.argv[1]
else:
target_dir = "." # 当前目录
convert_directory_to_utf8(target_dir)
使用建议
- 先备份:转换前备份原始文件
- 确定原编码:使用
file命令或chardet检测原始编码 - 常见编码:
- Windows: GBK/GB2312, ANSI
- Linux: UTF-8
- Mac: UTF-8, 中文(Unicode)
选择哪个脚本取决于你的操作系统和需求:
- Linux/Mac: iconv 最简单
- Windows: PowerShell 自带
- 需要跨平台: Python 脚本最灵活
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播