>  기사  >  웹 프론트엔드  >  javascript_javascript 기술에서 파일 인코딩 형식을 일괄 수정하는 방법

javascript_javascript 기술에서 파일 인코딩 형식을 일괄 수정하는 방법

WBOY
WBOY원래의
2016-05-16 16:18:041335검색

본 글의 예시에서는 자바스크립트로 파일 인코딩 형식을 일괄 수정하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.

요약:

최근 매뉴얼을 만들다가 '문서 왜곡' 문제가 발생했습니다. 파일을 확인해 보니 총 100개 이상의 파일이 잘못되어 있었습니다. 편집기를 사용하여 utf8로 저장했습니다. 그래서 파일 인코딩 형식을 일괄적으로 수정하는 프로그램을 작성했습니다.

코드:

코드 복사 코드는 다음과 같습니다.
/**
* 파일 인코딩 형식을 수정하세요(예: GBK에서 UTF8로
) * 다중 레벨 디렉토리 지원
* @param {String} [root_path] [트랜스코딩이 필요한 파일 경로]
* @param {Array} [file_type] [html 파일 등 트랜스코딩이 필요한 파일 형식]
* @param {String} [from_code] [파일 인코딩]
* @param {String} [to_code] [파일의 대상 인코딩]
​*/

//소개 패키지
var fs = require('fs'),
iconv = require('iconv-lite');

//전역변수
var root_path = './html',
File_type = ['html', 'htm'],
From_code = 'GBK',
to_code = 'UTF8';

/**
* 요소가 배열에 있는지 확인
* @날짜 2015-01-13
* @param {[String]} elem [찾을 요소]
* @return {[bool]} [설명]
​*/
Array.prototype.inarray = 함수(요소) {
"엄격한 사용";
var l = this.length;
동안 (l--) {
If (this[l] === elem) {
       true를 반환합니다.
}
}
false를 반환합니다.
};

/**
* 트랜스코딩 기능
* @날짜 2015-01-13
* @param {[String]} root [인코딩 파일 디렉터리]
* @return {[유형]} [설명]
​*/
함수 encodeFiles(루트) {
"엄격한 사용";
var 파일 = fs.readdirSync(root);
files.forEach(함수(파일) {
var 경로명 = 루트 '/' 파일,
​​ stat = fs.lstatSync(경로명);
If (!stat.isDirectory()) {
var 이름 = file.toString();
If (!file_type.inarray(name.substring(name.lastIndexOf('.') 1))) {
         반품;
}
            fs.writeFile(경로 이름, iconv.decode(fs.readFileSync(경로 이름), from_code), {
인코딩: to_code
}, 함수(err) {
만약 (오류) {
            오류를 던졌습니다.
}
});
} 그 밖의 {
encodeFiles(경로명);
}
});
}
encodeFiles(root_path);

요약:

위 프로그램은 다중 레벨 디렉터리를 지원하며 동일한 파일을 여러 번 실행할 수 없습니다. 그렇지 않으면 잘못된 문자가 나타납니다.
전체 코드는 여기를 클릭하여 이 사이트에서 다운로드할 수 있습니다.

이 기사가 모든 사람의 JavaScript 프로그래밍 설계에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.