name: encoding-handler description: 处理跨平台的文本编码,包括UTF-8、Windows代码页和BOM处理。 allowed-tools: Read, Write, Edit, Bash, Glob, Grep
编码处理器
处理跨平台的文本编码。
功能
- 检测文件编码
- 在不同编码之间转换
- 处理BOM标记
- 配置Windows代码页支持
- 标准化文本编码
- 处理编码错误
生成模式
import { Buffer } from 'buffer';
import iconv from 'iconv-lite';
export function detectBOM(buffer: Buffer): string | null {
if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) return 'utf-8';
if (buffer[0] === 0xFF && buffer[1] === 0xFE) return 'utf-16le';
if (buffer[0] === 0xFE && buffer[1] === 0xFF) return 'utf-16be';
return null;
}
export function stripBOM(content: string): string {
return content.charCodeAt(0) === 0xFEFF ? content.slice(1) : content;
}
export function decodeBuffer(buffer: Buffer, encoding = 'utf-8'): string {
const bom = detectBOM(buffer);
if (bom) {
return stripBOM(iconv.decode(buffer, bom));
}
return iconv.decode(buffer, encoding);
}
export function encodeString(content: string, encoding = 'utf-8', addBOM = false): Buffer {
const encoded = iconv.encode(content, encoding);
if (addBOM && encoding.toLowerCase() === 'utf-8') {
return Buffer.concat([Buffer.from([0xEF, 0xBB, 0xBF]), encoded]);
}
return encoded;
}
目标流程
- 跨平台CLI兼容性
- CLI输出格式化
- 配置管理系统