わいえむねっと

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.017 sec
Chashed: -
2008/05/15 Thu
あと、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