html 5の下のAラベル、download属性を利用してファイルをダウンロードする符号化方式をカスタマイズします

1193 ワード

aラベルのdownloadプロパティを使用して、文字列に中国語がある場合、通常保存されているtxtファイル符号化のデフォルトはutf-8であり、以下のコードはテキストファイル符号化がutf-8またはansi形式の選択を解決することができる.
	function base64(vStr){
		//base64     ,       。             。
		return '5Yip55SoQeagh+etvueahGRvd25sb2Fk5YGaQU5TSeaWh+acrOS/neWtmOa1i+ivle+8gQ==';
	}
	//        
    var tStr ="  A   download ANSI      !"
	saveTxt = function(vFilename,vText,vCharset) {
		//       
		if(!vFilename){return 'vFilename is null';}
		try{	//     ,      
			//  A  
			var aLink = document.createElement('a');
			if(vCharset.toUpperCase()=='ANSI'){
				//  base64    URL     UTF-8  。
				aLink.href = 'data:text/plain;base64,' + base64(vText);
			}else{
				//encodeURIComponent         utf-8   url  
				aLink.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(vText);
			}
			//A  download    
			aLink.download = vFilename;
			//    A  
			aLink.click();
			return true;
		}catch(err){
			console.log(err)
			console.log(err.message);
			return false;
		}
	}
	saveTxt('saveUtf8.txt',tStr,'utf-8');	//utf-8      
	saveTxt('saveAnsi.txt',tStr,'ansi');	//ansi