Open1
CMakeのfile(STRINGS ...)はENCODINGを明示しないと日本語が読めない

無駄にハマってしまった。。
file(STRINGS ja.txt lines ENCODING UTF-8)
foreach(l ${lines})
message(STATUS "${l}")
endforeach()
のようにしないと、
1234 日本語の
5678 文字列
を読めない。
file(STRINGS ja.txt lines)
foreach(l ${lines})
message(STATUS "${l}")
endforeach()
のように、 ENCODING
を消すと、
-- 1234
-- 5678
となり、ASCIIでない部分が無視される。
ファイルにBOMが有る場合はBOMが尊重されるが、通常のシチュエーションではBOMなんか付いてないケースの方が多いのではないか(Windows以外)。