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

24 ビュー (過去 30 日間)
k-inoue
k-inoue 2022 年 7 月 25 日
コメント済み: k-inoue 2022 年 7 月 26 日
MATLAB2022aでの動作確認をしています。
2022aにて、2019b以前のバージョンで使用していたCSVファイル出力(ヘッダーデータ日本語含む+データ配列)のm-fileを実行するとCSVファイルはUTF-8で出力されます。
メモ帳等で開くと日本語部分の文字化けはしていませんが、エクセルで開くとヘッダーの日本語部分は文字化けを起こしています。
(2019b以前のバージョンではShift-JISで出力され問題はありませんでしたが、2020aからデフォルトの文字コードがUTF-8に変更された影響かと思います。)
業務上csvファイルを直接エクセルで開くといった頻度も多いことから、Shift-JISでCSV出力をしたいのですが、何かしらの操作や設定変更等で対応可能でしょうか。
お手数をおかけしますが教えて頂きたく思います。
  2 件のコメント
Hernia Baby
Hernia Baby 2022 年 7 月 25 日
1点質問させてください
①出力の関数はどれを使っていましたか?
 csvwriteでしょうか?それともwritetableでしょうか?
k-inoue
k-inoue 2022 年 7 月 25 日
ご検討頂いていましたら申し訳ありませんが、コードを見直していたところ自己解決できました。
下記のようなコードで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);

サインインしてコメントする。

採用された回答

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

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLanguage Support についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!