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: F# FSharp
0 Comments:
Post a Comment
<< Home