2019年9月4日水曜日

文字エンコードについて


シンチラを使ったエディタ開発をする上で一番の壁がこれだった
読込に関しては何とか解決したが書き込みでさらに悩み
u8に統一しようとも思ったけど踏み切れず、一応元のエンコで保存することにしたが、エラーの場合は保存できない仕様にした

ユニコード系だとエラーは無いはずなので)、可能性はcp932(いわゆるs-jis)
で、この仕様でcp932に無い文字「〜」(波ダッシュ)で実験したところ、エラー無く保存できてしまった
Pythonのエンコーダは「~」(全角チルダ)に変換してくれたんだね

しかし、win8のメモ帳でこの文字を「ANSI」(=s-jis)で保存するとメッセージが出て「?」に置換して保存される
この違いはなんだ?
ちなみに最初から「~」(全角チルダ)にしておけばメモ帳のANSIで問題なく保存される
エンコーダがpythonとwinで違うって事ですよね

ちなみにこの文字「( ̄― ̄?)」はpythonでもエラーではじく
pythonエンコーダではそもそもcp932には無いけど置き換えてくれる文字と全くイケない文字の2種類があるって事ですね
しかし、文字の規格ってどこかで決まってるんだろうけどなあ、こういう違いがあっても良いんだろうか??

そもそもwindowsのロケールが未だにs-jisだってところがなあ
日本だけの問題?MSにとってはどうでもいいのかな~( ´∀`)

0 件のコメント:

コメントを投稿