shift-JIS形式でCSV出力をする方法

119 views (last 30 days)
k-inoue
k-inoue on 25 Jul 2022
Commented: k-inoue on 26 Jul 2022
MATLAB2022aでの動作確認をしています。
2022aにて、2019b以前のバージョンで使用していたCSVファイル出力(ヘッダーデータ日本語含む+データ配列)のm-fileを実行するとCSVファイルはUTF-8で出力されます。
メモ帳等で開くと日本語部分の文字化けはしていませんが、エクセルで開くとヘッダーの日本語部分は文字化けを起こしています。
(2019b以前のバージョンではShift-JISで出力され問題はありませんでしたが、2020aからデフォルトの文字コードがUTF-8に変更された影響かと思います。)
業務上csvファイルを直接エクセルで開くといった頻度も多いことから、Shift-JISでCSV出力をしたいのですが、何かしらの操作や設定変更等で対応可能でしょうか。
お手数をおかけしますが教えて頂きたく思います。
  2 Comments
Hernia Baby
Hernia Baby on 25 Jul 2022
1点質問させてください
①出力の関数はどれを使っていましたか?
 csvwriteでしょうか?それともwritetableでしょうか?
k-inoue
k-inoue on 25 Jul 2022
ご検討頂いていましたら申し訳ありませんが、コードを見直していたところ自己解決できました。
下記のようなコードでCSVファイルを出力していましたが、1行目のコードを2行目に変更することでMATLAB2022aでもUTF-8ではなく、Shift-JISでCSV出力ができました。
**************************************************************:
%fid = fopen('sample.csv','wt'); 
fid = fopen('sample.csv','wt','n','Shift_JIS'); 
header1='日本語';
header2='単位';
fprintf(fid,'%s\n',header1);
fprintf(fid,'%s\n',header2);
sampledata=(1:1:10)';
for i = 1:1:length(sampledata)
fprintf(fid,'%f\n',sampledata(i,:)); % 数値の書き出し
end
fclose(fid);

Sign in to comment.

Accepted Answer

交感神経優位なあかべぇ
writetableやwritecellなど、Encodingのパラメーターがある関数の場合は、Encodingを'Shift-JIS'に設定することで、Shift-JISでcsvを生成できます。
  1 Comment
k-inoue
k-inoue on 26 Jul 2022
ご回答ありがとうございます。
参考にさせて頂きます。

Sign in to comment.

More Answers (0)

Products


Release

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!