わいえむねっと

Contents
Categories
Calendar
2008/05
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Monthly Archives
~2000/01
Recent Entries
RSS1.0
Templates
Information
Processed: 0.054 sec
Chashed: -
2008/05/15 Thu
昼飯抜き。 多言語メッセージリソースメモ:
Sample Message Text File (Windows)
http://msdn.micro​soft.com/en-us/library/aa385769(VS.85).aspx
Be aware that you must use a Unicode-compatible editor to simultaneously support the characters used in different written languages.
としか書いていないけど、例によってUTF16LEで保存しろということらしい。
BOMはあってもなくても可。出力結果にも差異はなし。

Message Compiler (MC_exe) (Windows)
http://msdn.micro​soft.com/en-us/library/aa385638(VS.85).aspx
-a
Specifies the input file is ANSI (default).

-u
Specifies that the input file is Unicode.
ANSI文字がデフォルトなので -u 必須。

自前で使用するなら、

FormatMessage Function (Windows)
http://msdn.micro​soft.com/en-us/library/ms679351(VS.85).aspx
dwLanguageId
The language identifier for the requested message. This parameter is ignored if dwFlags includes FORMAT_MESSAGE_FROM_STRING.

に MAKELANGID(LANG_JAPANESE, SUBLANG_DEFAULT) とか MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US) を。
あと、ActivePerlでUTF16を扱うには一手間必要。

スクリプティング言語資料室(仮)
http://www.kt.rim​.or.jp/~kbk/
ActivePerlで UTF-16(BE|LE)のデータを出力するときの注意事項
ActivePerlではファイルをオープンしようとすると、特に指定しなければ テキストモードでオープンします。 このため出力の文字コードにUTF-16のデータを出力しようとしたとき、 テキストモード時に行われる LF → CR LF 変換が変なタイミングで 行われてしまうため、出力結果がおかしくなります。 対応策は 183 : Writing a Unicode file via perl ... にあるとおり、ファイルのオープン時の指定を工夫するというものです。


if ( $ESENT ){ #ifdef ESENT 
           open( INIFILE, "<:raw:encoding(UTF16-LE):crlf:utf8", "$INIFILE" ) || die "Cannot open $INIFILE: ";
           print INIFILE "\x{FEFF}";  # print BOM (Byte Order Mark) for the unicode file
} else { #else
           open( INIFILE, "<$INIFILE" ) || die "Cannot open $INIFILE: ";
} #endif

後輩が引っ越し先を探しているとかで、一之江の不動産屋に案内することに。
駅からすぐの不動産屋というか、取締役宅の近所の不動産屋というか、うちの近所の不動産屋というか、とにかく近所。
1件目に案内された物件が割と良い物件だったので後輩即決。
とりあえす祝い酒。