2012年1月14日

DoxygenでISO-8859のコード変換失敗に対応するには

欧米のソースコードはシングルバイトコード(ISO-8859)がよく使用されますが、ASCIIコードで無いコード、 つまり\x80~\xFFのシングルバイトコードが含まれている場合があります。
その多くはコメント部で使用されます。例えば人名やCopyrightの©記号などです。

これらの文字コードを含むソースに日本語のコメントを追加すると、全体で文字コードの不一致が起こります。
そのため、Doxygenでドキュメント生成しようとするとコード変換に失敗します。

・ISO-8859の特殊文字(\x80~\xFF)を検出する方法 
サクラエディタUNICODE版のgrepを使用します。
正規表現を使用し、検索条件を[\x{dc80}-\x{dcff}]とします。

・対処法
コメント部で使用されていた場合、単純に削除するかスペースなどで置き換えます。
文字列中で使用されていた場合、内容を変える訳にはいかないのでバックスラッシュ(¥or\)によるコード表記に置き換えます。

・大量にある場合
スクリプトを書かざるを得ないでしょう。
日本語のコメントを付加する前であれば簡単なスクリプトで済みます。
(\x80~\xFFの文字コードをコード表記に変えるだけ)

0 件のコメント :