いくつかやり方がありますが、要はmimeTypeをtext/csv; charset=shift_jis
にできればOK。
D3.jsでCSVを読み込むには一般的には以下のようなコードを書くと思います。
d3.csv('data.csv', function (data) {
// dataを処理する
});
これを以下のように修正することでShift JISのファイルを文字化けなく読み込むことができます。
2パターン紹介するので好きな方をどうぞ。
パターン1
d3.csv('data.csv')
.mimeType('text/csv; charset=shift_jis')
.on('load', function (data) {
// dataを処理する
})
.get();
パターン2
var getCSV = d3.dsv(',', 'text/csv; charset=shift_jis');
getCSV('data.csv', function (data) {
// dataを処理する
});