文字コードについて
現在ハンディターミナルと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も見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
VB6で配列を文字列に変換する方法?
Visual Basic(VBA)
-
VB6.0の「vbFromUnicode」はVB.NETではどれに相当しますか?
Visual Basic(VBA)
-
byte配列の内容をstringにコピーしたい
Visual Basic(VBA)
-
-
4
VB6のプロジェクトロードエラーについて
Visual Basic(VBA)
-
5
VB6.0のString関数に代わるVB2008のそれは?
Visual Basic(VBA)
-
6
VisualBasic6.0のFormat関数でmSecを表示したい
Visual Basic(VBA)
-
7
VB6 配列を初期化したい
Visual Basic(VBA)
-
8
VB6とVB.NETでNullの扱いが違う?
Visual Basic(VBA)
-
9
VB6のメモリ解放に関して
Visual Basic(VBA)
-
10
VBでバイナリデータについて。
Visual Basic(VBA)
-
11
VBからPDFファイル自動生成するには
Visual Basic(VBA)
-
12
VBプログラムの終了
Visual Basic(VBA)
-
13
VB6(SP5)+OO4OでCreateObjectが失敗する
Visual Basic(VBA)
-
14
byte型をstring型として扱うには
Visual Basic(VBA)
-
15
VB6にて、テキストファイルの内容を更新したいのですが。。
Visual Basic(VBA)
-
16
VB6.0-整数と余りを求める
Visual Basic(VBA)
-
17
winsock通信時エラーの回避
Visual Basic(VBA)
-
18
OracleInProcServer.XOraSession オブジェクト作成時の参照ファイル
Visual Basic(VBA)
-
19
VB6.0 文字列のファイル書き込み
Visual Basic(VBA)
-
20
他のモジュールのプロシージャの呼び出したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
nullと""、\\0とEOFの違いにつ...
-
TCL言語で文字列検索方法を教え...
-
プログラムによく出てくるst...
-
VBA-DLLの引数受け渡しについて
-
C#でstringをポインタとして渡す
-
WSH(VBS)でJSONの文字列を読み...
-
16進数を2文字ずつ配列に格納し...
-
CSVファイルの「”」について
-
シリアル通信で0x00を送信した...
-
VB6.0でのバイナリデータの扱い...
-
構造体→文字列→構造体 をする方法
-
C言語の勉強しています。すみま...
-
%dなどの違い
-
C++で入力した文字列から数字を...
-
文字を反転させる。
-
char型配列の最大要素数
-
Shift_JIS(16進)を文字に変換す...
-
c#で他のアプリの文字入力フォ...
-
C言語のコンパイル時に表示され...
-
文字列型の一般的な変数名は?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#でstringをポインタとして渡す
-
プログラムによく出てくるst...
-
C++で入力した文字列から数字を...
-
nullと""、\\0とEOFの違いにつ...
-
c#で他のアプリの文字入力フォ...
-
TCL言語で文字列検索方法を教え...
-
16進数を2文字ずつ配列に格納し...
-
シリアル通信で0x00を送信した...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
WSH(VBS)でJSONの文字列を読み...
-
VB6.0でのバイナリデータの扱い...
-
C++で文字列の右端から特定の文...
-
数字の入った配列をファイルへ...
-
%dなどの違い
-
構造体→文字列→構造体 をする方法
-
char型配列の最大要素数
-
VBA-DLLの引数受け渡しについて
-
[C++]WCHARの1文字目しか表示で...
-
Shift_JIS(16進)を文字に変換す...
-
CSVファイルの「”」について
おすすめ情報