FileX on USB Mass Storageのスタックを使用してUSBメモリ内にファイルを作成しようとしています。
ファイル作成にはUINT fx_file_create(FX_MEDIA *media_ptr, CHAR *file_name)使用します。
この時、SJISコードのファイル名のファイルを作成しようとした場合に特定の文字が含まれている場合に
作成されたファイル名が文字化けします。原因はなんでしょうか。SJISコードは未対応なのでしょうか。
作成で指定したファイル名は”テスト.(拡張子)”です。
基本的に使えないです。最低でもショートファイル名はどのシステムでも解釈が出来るキャラクタセットを使わないと困ります(IBM3270表示・印字可能キャラクタならインターネットプロトコルでも規定されているので余程でない限り解釈できます) SJISは解釈が不十分なシステムでで見た場合バックスラッシュが含まれている文字列になるので結構あぶないですよ
> SJISは解釈が不十分なシステムでで見た場合バックスラッシュが含まれている文字列になるので結構あぶないですよ
ファイルシステムがFAT32ならShift-JISもアリですが、NTFSなどUNICODEを前提にした所にShift-JISを突っ込まれたら動けないですね。マルチバイト文字列を文字コードだけ見て間違いなく判別するのは不可能なので厄介です。