UTF-8連番ファイル大量一括作成

少し前(2016/04/27)に書いた「UTF-8ファイル内からの検索」に出てきた「UTF-8で書いたファイル」についてである。HTMLで使うファイルのUTF-8化(このサイトではまだ試行段階)に際して必要になる「連番のUTF-8ファイル作成ツール」である。この際にこちらもまとめておこう。

現在は「UTF-8での連番ファイルの作成ツール」はCGIで作成している。その方法は次の2通りがある(bin/perl/renban1ディレクトリにある)。両者とも結果的に作成されるファイルは同じであるが、内部的にはかなりの差異がある。

要点

以上どちらの場合も、CGI作成時のデフォルトではUTF-8識別子(いわゆるBOM)は付加されない。この点ではJavaの場合と同じである(jdk_0022やjdk_0011を参照)。通常のファイルではUTF-8識別子がある方が便利である1)。メモ帳2)や他のエディタでも自動的にUTF-8のファイルだと認識されるからである。この場合も明示的にUTF-8識別子を付加している。ただし、CGIとJavaではUTF-8識別子の付け方は異なる(当然)。
NOTES
1) CSVファイルなどではUTF-8識別子を付けないのが普通である。
2) メモ帳ではデフォルトの文字コードがUTF-8Nになったため、UTF-8のBOMがなくてもUTF-8またはUTF-8Nだと認識されるようである(2020/10/06)。

なお、h5_utf8_by_u8.cgi(UTF-8で記述)とh5_utf8.cgi(EUC-JPで記述)ではh5_utf8.cgiの方が実行速度が速い(ように感じる)。

その他

ついでに、以前に作ったものの再検討の過程で気がついたことがある。
sjisの*.jsをそのままutf-8に流用する場合。
例1
<script charset="shift_jis" src="../mscr.js"></script>

utf-8用の*.jsを作った場合。
例2
<script src="../u8_mscr.js"></script>

しかし、ここは[例2]のようにUTF-8専用のものを作った方が、多少煩瑣にはなるがファイルがUTF-8で統一できて安心である。こういう部分は修正した。
なお、*.cssは当然UTF-8でないと動作しない。

SOURCE
UTF-8でHTML5の連番ファイルの作成(perl_0037)
h5_utf8.cgi, h5_utf8_by_u8.cgi のソースである。

- 2016/04/30 -


参考
UTF-8連番ファイル大量一括作成(tpc_0486)