LoginSignup
3
3

More than 5 years have passed since last update.

Ruby で VC++ 向けソースを生成する際に Unicode 文字を通す

Posted at
  • VC++ は BOM 付き UTF-8 ならば Unicode なソースを食える。(一般には、UTF-8 での BOM はナンセンスだがしようがない。)
  • Ruby の文字列リテラルは、そのスクリプトが書いてあったファイルのエンコーディングの影響を受けるが、 Unicode エスケープを含むと UTF-8 になる。

ゆえに

  file = File.open(file_path, "w:utf-8")
  file.write("\uFEFF")

として出力を開始すればよい。

ネットを検索すると、magic comment でスクリプトエンコーディングを utf-8 にした上で "\xEF\xBB\xBF" を出力するものや、Array#pack, String#setbyte, String#force_encoding あたりを使う例が見つかるが、たぶんこれが簡単確実なはず。(古いバージョンでは違ったのかもしれませんが、そこまでは調べていません。)

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3