Azzera filtri
Azzera filtri

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

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

Accedi per commentare.

Risposta accettata

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

Accedi per commentare.

Più risposte (0)

Prodotti


Release

R2022a

Community Treasure Hunt

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

Start Hunting!