嗨,我正在尝试转换的文件名和内容 EUC-KR
到 UTF8
. 由于我使用的是macos(bigsur 11.4),如果使用提供解压功能的操作系统解压,文件名和内容就不会有问题。但当我试图以编程方式解决这个问题时,我解决了内容编码,但文件名被破坏了。
我在用拉链拉衣服 extract-zip
,编码器 iconv-lite
. 参见下面的代码。
import extract from 'extract-zip'
import iconv from 'iconv-lite'
import fs from 'fs'
import path from 'path'
// download file from web...
const targetPath = ZIP_FROM_WEB
try {
await extract(zipPath, { dir: targetPath })
} catch (err) {
logger.error(`[ZipExtractError] ${err}`)
fs.rmSync(targetPath, { force: true, recursive: true })
process.exit(1)
}
const eucKrFiles = fs.readdirSync(targetPath)
eucKrFiles.forEach(fileName => {
if (path.extname(`${targetPath}/${fileName}`) !== '.txt') {
return
}
// read and overwrite EUC-KR to UTF8
const euckrContent = fs.readFileSync(`${targetPath}/${fileName}`)
const utf8EncodedContent = iconv.decode(euckrContent, 'euc-kr')
fs.writeFile(`${targetPath}/${fileName}`, utf8EncodedContent, err => {
if (err) {
logger.error(`[UTF8ConversionError] ${err.message} ${err.stack}`)
process.exit(1)
}
})
logger.info(`[UTF8FileConversion] Successfully convert ${fileName} encoding EUC-KR to UTF8.`)
})
但是文件名是这样的。
文件名的好坏
另外,来自同一站点的其他文件(每日目录),这个问题从未发生过。
我怎样才能解决这个问题?我能把这个奇怪的文件名转换成人类可读的吗?
暂无答案!
目前还没有任何答案,快来回答吧!