问题描述

之前写了一个程序,自动读取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); 
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐