現在、visual studio2010のvisual C++でメモ帳をテキストボックスに表示するプログラムを作成しています。
しかし、文字コードがASCIIで保存してあるファイルを開こうとすると、文字化けが起こります。
shift-jisなどに変換しようとすると、ほかの文字コードで保存してあるファイルを開いたときに文字化けが起こります。
文字コードがASCIIのテキストファイルを開くときのみ、shift-jisなどに変換しようと思うのですが、文字コードがASCIIであるか、そうでないかを判別できる処理があれば教えていただけないでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ん?
ANSIですか、ASCIIですか、はっきりさせてください。
ちょっと調べたら、メモ帳でのANSIはShift_JISと考えてよいようです。
どちらにしても「Shift_JISに変換」する必要はありません。同じものなんですから。
そうではなくて「Shift_JISから変換」じゃないですか?
開くときにどんな関数(メソッド)使ってるかしりませんが、そこで文字コードを指定するようになっているの「Shift_JIS」と指定する、ってことじゃないですか?
Visual Basicのことになっていますが、仕組みは同じなので参考になると思います。
http://social.msdn.microsoft.com/Forums/ja-JP/vb …
No.1
- 回答日時:
うーん
ASCIIコードというのは7bit(0~127)までしか使っていない上、そのほとんどがShift_JISと一致しています(有名な違いに「円記号とバックスラシュ」があります)
つまり、ASCIIとは、Shift_JISでいわゆる「半角英数」しか使っていない状態と(ほぼ)同じです。字形は判断できないので、コードだけ見れば「同じ」ということになります。
ですから、「ASCIIをSHift_JISに変換」というのも変な話です。
テキストボックスに使ってるのはUnicodeだったりしませんか?
この回答への補足
メモ帳を保存するときは、特に設定を変えなければ、文字コードが”ANSI”で保存されますよね?
その他の文字コードには、”Unicode””Unicode big endian””UTF-8"がありますが、これは文字コードの変換を行わずとも、textboxに表示することができたのですが、ANSIで保存したファイルだけ文字化けが起こるので、shift-jisに変換せずとも文字化けをなくす方法があれば、ぜひ教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- その他(ソフトウェア) powershell で出力したテキストファイルをvim で開くと文字化け 2 2023/01/11 21:39
- その他(プログラミング・Web制作) 文字コード及びフォントに関する次の記述を読み,適切なものをすべて選べ。 ASCIIとは,英数字だけを 4 2023/01/11 19:10
- Windows 8 メモ帳による文字コード変換 2 2022/09/01 18:38
- C言語・C++・C# S-JIS → JIS コード変換するには 3 2023/02/09 23:55
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) Excelの操作方法を教えてください!頭文字2~8文字で特定の値に返す方法 8 2022/07/14 11:26
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
逆コンパイルと逆アセンブルの...
-
緯度、経度の 10進法と 60進法...
-
家電製品の電力周波数を変える機械
-
10進数をBCDに変換する方法
-
VB6からVB2010への変換について
-
VC++2005で、CString型に16進...
-
sgmlからXMLへの変換
-
なぜ通信には16進数文字列が使...
-
C# でIME の状態を知るには?
-
tex 郵便記号のだしかた
-
PHPで、日本語からアルファベッ...
-
VisualBasicをC++に変換する方...
-
php
-
UTF8→ShiftJISに変換したいです!
-
エクセルのvbaで検索ボタンを作る
-
StrConvの使い方について教えて...
-
C++からCへのソース変換について
-
SJIS⇔UTF-8の文字コード...
-
.sb3のファイルを.sb2に変換す...
-
C言語からC#への変換ツール
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
Mac 乗数の入力方法
-
3のつく数字と3の倍数のみを表...
-
10進数をBCDに変換する方法
-
bmp→jpgに、jpg→bmpに
-
エクセルVBAの自動変換機能?
-
アセンブラ言語の数字を数値に...
-
なぜ通信には16進数文字列が使...
-
SJIS⇔UTF-8の文字コード...
-
C++からCへのソース変換について
-
分を時間に変換するプログラム
-
UTF8→ShiftJISに変換したいです!
-
家電製品の電力周波数を変える機械
-
マンセル⇔XYZ,RGB変換式或いは...
-
VB.NETをJavaに変換するツール...
-
画像ファイル変換(Tiff→PDF)
-
PHPで、日本語からアルファベッ...
-
魚眼レンズの画像処理
-
C#で漢字→ローマ字を変換
-
StrConvの使い方について教えて...
おすすめ情報