2022-07-25 13:57:47
なでしこ1で書き出すフォルダ名・ファイル名の文字コード
「フォルダ名・ファイル名の文字コード」について、動作上でいまいち分からないことがありますので教えていただけると幸いです。 現在、なでしこで「一覧テキストファイルの中身を読んで、フォルダ名を連続で書き出しつつ、中にひな形入りテキストを入れて書き出す」といったものを作成し運用しています。 Excelと連携することで手軽にフォルダを量産でき、非常~~に、重宝しております。 ただ、なでしこではUTF-8を基本的に扱えないということで、 ----- 「.txt」のファイル選択。 それを毎行読んで反復。 それをSJIS変換。 ... ----- こういったSJIS変換コマンドを挟み込み、一覧テキスト内の行を【Shift-JIS形式の文字列】に変換し、それを変数として、フォルダ名、ファイル名を書き出す際に代入しています。 これで問題なく動作しているのですが、ふと疑問に思ったのが「今のWindowsで、フォルダ名、ファイル名にShift-JISテキストが使えているのか?」という点です。 WindowsはVista以降NTFSでフォルダ名・ファイル名ともに基本はUNICODE形式(UTF8でなく16だったかもしれませんが..)になっているものと思います。 代入しているテキストがShift-JISでも問題ないのはなぜでしょうか? 同じような仕様でなでしこで作った一斉テキストファイル書き出しツールでは、 文字コードをきちんと合わせないと化けてしまうので、OS側で吸収しているのかな、と思うのですが、 実際のところどういう動作になっているのでしょうか? 「フォルダ名、ファイル名に関してだけは」仮にShift-JISを使おうとしても、OS側で強制的にUTF変換処理がなされるのでしょうか? ※ちなみに、上記SJIS変換の後、もう一度UTF8変換してから変数に指定すると、逆にファイル名、フォルダ名が化けてしまいますので、疑問に思った次第です。 |