らくがき

2008/03/11

F# は UTF-8 推奨だった

どうやら、F#は UTF-8 推奨みたい ソースファイルの文字コードを UTF-8 にしてコンパイルすると、Shift-jis では文字化けしていた文字列が普通に表示される。
○ let str = "表示する"
だけど、ソースファイル内での以下の表現は正しく処理されない
× let strb = "表示する"B   // この時点で正常なバイトデータが得られない
× 'あ'   // syntax error
とはいえ、次の表現は正しく処理される
○ let utf_strb = Encoding.UTF8.GetBytes(str)     // 正常なUTF-8のバイトデータが得られる
○ printf "%c" str.[1]   // 「示」が表示される
F# 内部では System.Char を使っているようなので、Unicode系は得意中の得意 そのため、上の printf ではちゃんと表示されるものと思われる(実データは3バイトもあるからね) 正しく処理されない表現は、F# のソースから System.Char に渡すまでのどこかで拒否られているっぽい 直せるものなら直してほしいけど、ダメならダメで特に困ることはないかも?w ささ、ソースファイルは UTF-8 で保存してコンパイルしよう! VS2008 の場合は、標準が Shift-jis なので注意ダ  

Labels:

0 Comments:

Post a Comment

<< Home