文字コードについて
現在ハンディターミナルとPCとの通信を行うプログラム(VB6.0)を作成しています。
プログラムの一部で下のような記述があります。
------------------
BCC = Chr(aa)
------------------
変数aaには数字の226が入り、変数BCCには226に該当する文字列が格納されるはずですが、BCCには文字化けした文字が入り困っています。
調べた結果VB6.0は文字列をunicodeとして扱い、その結果内部的な文字列変換が理由で、文字コード上に存在しない幾つかのバイナリデータは、Chr関数で扱えないというところまではわかりました。
そこでChr命令をChrB命令に変更しましたが、求めている答えが返ってきませんでした。
文字コード表では"DF"までは存在しますが、それ以降の文字は存在しないため扱うのは無理なのでしょうか?
StrConvなどを使用すれば可能なのかどうか等考えているのですがわからない状況です。
どなたかご教授願えないでしょうか。宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
String型は、Unicode(UTF-16)でデータが入ってくることが前提なので、
String型に対してChrB()、Chr()で非Unicode文字をセットしても解決にはなりません。
バイナリーデータは、String型は一切使用せずにバイト型配列で処理するのが基本です。
>BCCをbyte型とした場合、
>今度は問題なかった文字コードが文字化けする事や、
>かえってくる文字列がかわるような事はありませんか?
たとえ偶然であっても、他のうまくいっているString型の変数は、いじる必要はないわけですが、
もしBCCという変数で、その他のうまくいっている文字列を同時に扱っているのであればそうなるかもしれません。
(いままで暗黙のうちにUnicode⇔SJIS変換を行ってくれていた部分
を自前で処理する必要があります)
具体的には、
バイト型配列 = StrConv(String型変数, vbFromUnicode)
String型変数 = StrConv(バイト型配列, vbUnicode)
のような処理が必要でしょう。
ご回答有難うございます。
私の力不足もあり未だ問題解決に至っておりません。
そこで新しくまた質問させていただきます。申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP カラーミーショップのSmartyでの文字列抜き出し 2 2022/05/06 11:51
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- C言語・C++・C# C言語の質問です。 以下の命令を実行するプログラムを作りました ①文字列aとbの長さを表示 ②aとb 1 2022/04/29 15:35
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Excel(エクセル) エクセルで文字列と数字が混在する列に書式設定したい。 3 2022/12/19 09:11
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VB6で配列を文字列に変換する方法?
Visual Basic(VBA)
-
byte配列の内容をstringにコピーしたい
Visual Basic(VBA)
-
VB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?
Visual Basic(VBA)
-
-
4
byte型をstring型として扱うには
Visual Basic(VBA)
-
5
VB6のプロジェクトロードエラーについて
Visual Basic(VBA)
-
6
VBでバイナリデータについて。
Visual Basic(VBA)
-
7
VB6(SP5)+OO4OでCreateObjectが失敗する
Visual Basic(VBA)
-
8
VB6.0 文字列のファイル書き込み
Visual Basic(VBA)
-
9
配列を関数に渡す方法
Visual Basic(VBA)
-
10
VB6とVB.NETでNullの扱いが違う?
Visual Basic(VBA)
-
11
VB6でのファイルサイズ取得について
Visual Basic(VBA)
-
12
VB6のメモリ解放に関して
Visual Basic(VBA)
-
13
StrConvの使い方について教えてください。
Visual Basic(VBA)
-
14
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
15
VBからPDFファイル自動生成するには
Visual Basic(VBA)
-
16
VBプログラムの終了
Visual Basic(VBA)
-
17
メモリ不足
Visual Basic(VBA)
-
18
VB6にて、テキストファイルの内容を更新したいのですが。。
Visual Basic(VBA)
-
19
OracleInProcServer.XOraSession オブジェクト作成時の参照ファイル
Visual Basic(VBA)
-
20
VisualBasic6.0のFormat関数でmSecを表示したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
nullと""、\\0とEOFの違いにつ...
-
C#でstringをポインタとして渡す
-
構造体→文字列→構造体 をする方法
-
C++で入力した文字列から数字を...
-
Cで二次元配列の読み込み
-
C++で文字列の右端から特定の文...
-
プログラム問題・・・
-
TCL言語で文字列検索方法を教え...
-
%dなどの違い
-
Excelシートを固定長のテキスト...
-
アルファベットの出て来た回数
-
数字の入った配列をファイルへ...
-
VB6.0でのバイナリデータの扱い...
-
[C++]WCHARの1文字目しか表示で...
-
C言語 配列の長さの上限
-
関数から配列を返すには?
-
C言語のポインタに直接アドレス...
-
VBAのプログラムで、DIAG = 1# ...
-
init関数の意味
-
セグメントエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムによく出てくるst...
-
nullと""、\\0とEOFの違いにつ...
-
TCL言語で文字列検索方法を教え...
-
C#でstringをポインタとして渡す
-
C++で入力した文字列から数字を...
-
%dなどの違い
-
WSH(VBS)でJSONの文字列を読み...
-
16進数を2文字ずつ配列に格納し...
-
シリアル通信で0x00を送信した...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
構造体→文字列→構造体 をする方法
-
VBA-DLLの引数受け渡しについて
-
[C++]WCHARの1文字目しか表示で...
-
数字の入った配列をファイルへ...
-
VB6.0でのバイナリデータの扱い...
-
引用符と二重引用符
-
こんなことって可能なのですか...
-
char型配列の最大要素数
-
sprintf関数について教えて下さ...
-
C言語の課題で困っています;
おすすめ情報