文字列をaタグを使ってダウンロードする際に文字コードをs-jisにしたかったのですが、utf-8になってしまい困ったので記載しておきます。
		  目次
		  
		  
		  
		
対応方法
早速ですが対応方法を記載します。
初めに「encoding.js」というライブラリを読み込みます。CDNが用意されているので以下のように読み込みます。
<script src="https://cdnjs.cloudflare.com/ajax/libs/encoding-japanese/1.0.30/encoding.min.js"></script>次に以下のように記載し、文字コードを変更します。
var content = "文字コードを変換してダウンロードする文字列";
var encodingType = 'sjis';
var target = Encoding.stringToCode(content);
var shiftJisTarget = Encoding.convert(target, encodingType, 'Unicode');
var downloadTarget = new Uint8Array(shiftJisTarget);
var blob = new Blob([downloadTarget], {"type": 'text/plain'});そして、作成したblobをaタグに指定してダウンロードできるようにします。
var filename = "ダウンロードしたときのファイル名";
var link = document.createElement('a');
link.download = filename;
link.href = window.URL.createObjectURL(blob);これでsift-jisでダウンロードできるaタグが作成されます。
まとめると例えば以下のような感じになるかと思います。
<script src="https://cdnjs.cloudflare.com/ajax/libs/encoding-japanese/1.0.30/encoding.min.js"></script>
<script type='text/javascript'>   
    //filenameにダウンロードするときのファイル名を指定
    //contentにダウンロードする文字列を指定
    function download(filename, content){
        var encodingType = 'sjis';
        var target = Encoding.stringToCode(content);
        var shiftJisTarget = Encoding.convert(target, encodingType, 'Unicode');
        var downloadTarget = new Uint8Array(shiftJisTarget);
        var blob = new Blob([downloadTarget], {"type": 'text/plain'});
        var link = document.createElement('a');
        link.download = filename;
        link.href = window.URL.createObjectURL(blob);
       //作成したlinkをhtml内に設置する
    }
</script>以上になります。試してみてください。
 
		  	      
       
			  		    	         
			  		    	         
			  		    	         
                                 
		                   
		                   
		                   
		                  
コメントを書く