Revert "feat: 添加 GBK 编码自动检测支持,文件读写工具透明处理非 UTF-8 文件"

This reverts commit 0ce8f7a1cb.
This commit is contained in:
claude-code-best
2026-05-10 22:57:30 +08:00
parent 43c20a43c2
commit aaabf0c168
22 changed files with 120 additions and 1727 deletions

View File

@@ -29,7 +29,6 @@ import { extractClaudeCodeHints } from 'src/utils/claudeCodeHints.js';
import { detectCodeIndexingFromCommand } from 'src/utils/codeIndexing.js';
import { isEnvTruthy } from 'src/utils/envUtils.js';
import { isENOENT, ShellError } from 'src/utils/errors.js';
import { decodeBuffer } from 'src/utils/encoding.js';
import { detectFileEncoding, detectLineEndings, getFileModificationTime, writeTextContent } from 'src/utils/file.js';
import { fileHistoryEnabled, fileHistoryTrackEdit } from 'src/utils/fileHistory.js';
import { truncate } from 'src/utils/format.js';
@@ -512,8 +511,7 @@ async function applySedEdit(
const encoding = detectFileEncoding(absoluteFilePath);
let originalContent: string;
try {
const rawBuffer = await fs.readFileBytes(absoluteFilePath);
originalContent = decodeBuffer(rawBuffer, encoding);
originalContent = await fs.readFile(absoluteFilePath, { encoding });
} catch (e) {
if (isENOENT(e)) {
return {

View File

@@ -34,11 +34,6 @@ import {
type LineEndingType,
readFileSyncWithMetadata,
} from 'src/utils/fileRead.js'
import {
detectEncoding,
decodeBuffer,
type FileEncoding,
} from 'src/utils/encoding.js'
import { formatFileSize } from 'src/utils/format.js'
import { getFsImplementation } from 'src/utils/fsOperations.js'
import { fetchSingleFileGitDiff, type ToolUseDiff } from 'src/utils/gitDiff.js'
@@ -207,8 +202,13 @@ export const FileEditTool = buildTool({
let fileContent: string | null
try {
const fileBuffer = await fs.readFileBytes(fullFilePath)
const encoding: FileEncoding = detectEncoding(fileBuffer)
fileContent = decodeBuffer(fileBuffer, encoding).replaceAll('\r\n', '\n')
const encoding: BufferEncoding =
fileBuffer.length >= 2 &&
fileBuffer[0] === 0xff &&
fileBuffer[1] === 0xfe
? 'utf16le'
: 'utf8'
fileContent = fileBuffer.toString(encoding).replaceAll('\r\n', '\n')
} catch (e) {
if (isENOENT(e)) {
fileContent = null
@@ -584,7 +584,7 @@ export const FileEditTool = buildTool({
function readFileForEdit(absoluteFilePath: string): {
content: string
fileExists: boolean
encoding: FileEncoding
encoding: BufferEncoding
lineEndings: LineEndingType
} {
try {