Claude code中文符号踩坑
·
问题描述
之前写了一个程序,自动读取md文件里的内容,进行整理并输出新的内容,但是我的md文件内容是中文的,里面的符号也是中文的,比如中文的引号“”,但是最后生成的内容都变成了英文的""。
比如:原文是这样
妈妈说:“再也不打我了”
但是输出的是
妈妈说:"再也不打我了"
解决尝试
刚开始我还以为是生成的问题,所以试了很多提示词,都不行
1. 标点规范:全部使用中文全角标点,其中引号必须使用「“」(左)和「”」(右),示例:
- 错误:标注结果为"中文内容"
- 正确:标注结果为“中文内容”
2. 标注逻辑:按照质谱GLM模型的标注规则完成内容标注,仅修正标点格式。
但是结果还是没有改变。
确定问题
最后我决定debug一下,然后一下就发现问题了,问题出在读取md文件的位置,读取之后的输出的就是英文的符号
// 方式3: 直接使用 readFileSync 并指定编码为 'utf8'
// Node.js 会自动处理 BOM 和编码检测
const content = readFileSync(filePath, { encoding: 'utf8' }
-);
用这种方式读取的文件就是会直接把中文符号转成英文的引号,所以换个读取文件的方式就解决了
// 使用 Buffer 读取原始字节,然后用 TextDecoder 解码
// 这样可以确保正确处理 UTF-8 编码的中文和中文标点符号
const buffer = readFileSync(filePath);
const decoder = new TextDecoder('utf-8', { fatal: true,
+ignoreBOM: false });
const content = decoder.decode(buffer);
更多推荐



所有评论(0)