アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在、visual studio2010のvisual C++でメモ帳をテキストボックスに表示するプログラムを作成しています。

しかし、文字コードがASCIIで保存してあるファイルを開こうとすると、文字化けが起こります。

shift-jisなどに変換しようとすると、ほかの文字コードで保存してあるファイルを開いたときに文字化けが起こります。

文字コードがASCIIのテキストファイルを開くときのみ、shift-jisなどに変換しようと思うのですが、文字コードがASCIIであるか、そうでないかを判別できる処理があれば教えていただけないでしょうか?

A 回答 (2件)

ん?


ANSIですか、ASCIIですか、はっきりさせてください。

ちょっと調べたら、メモ帳でのANSIはShift_JISと考えてよいようです。
どちらにしても「Shift_JISに変換」する必要はありません。同じものなんですから。

そうではなくて「Shift_JISから変換」じゃないですか?
開くときにどんな関数(メソッド)使ってるかしりませんが、そこで文字コードを指定するようになっているの「Shift_JIS」と指定する、ってことじゃないですか?


Visual Basicのことになっていますが、仕組みは同じなので参考になると思います。
http://social.msdn.microsoft.com/Forums/ja-JP/vb …
    • good
    • 0

うーん


ASCIIコードというのは7bit(0~127)までしか使っていない上、そのほとんどがShift_JISと一致しています(有名な違いに「円記号とバックスラシュ」があります)
つまり、ASCIIとは、Shift_JISでいわゆる「半角英数」しか使っていない状態と(ほぼ)同じです。字形は判断できないので、コードだけ見れば「同じ」ということになります。

ですから、「ASCIIをSHift_JISに変換」というのも変な話です。

テキストボックスに使ってるのはUnicodeだったりしませんか?

この回答への補足

メモ帳を保存するときは、特に設定を変えなければ、文字コードが”ANSI”で保存されますよね?

その他の文字コードには、”Unicode””Unicode big endian””UTF-8"がありますが、これは文字コードの変換を行わずとも、textboxに表示することができたのですが、ANSIで保存したファイルだけ文字化けが起こるので、shift-jisに変換せずとも文字化けをなくす方法があれば、ぜひ教えてください。

補足日時:2011/06/14 23:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!