- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Accessからのソケット通信について)
Accessからのソケット通信について
このQ&Aのポイント
- Access2010(VBA)+BASP21を利用して別のアプリに対してテキストデータをソケット通信で受け渡す際の文字コードについて教えて下さい。
- Accessから送信する際は、あらかじめUTF-8で保存されたテキストファイルを変数に読み込み、それをBASP21から送信していますが、送信する時に文字コードが変わっている?のかただしくデータを受け取ってくれません。
- Accessからデータを送信する際に、確実にUTF-8にてデータを送信したいのですが、どのような方法があるでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>テキストファイルを変数に読み込み VBのステートメントで文字型変数に 読み込むとShiftJisに変換されます。 というか、ShiftJisだと見て処理され、 変換できないものは字化けします。 文字型変数を経由した時点でアウト です。 1.バイナリ型のI/Oにする 2.BASP21のBinaryReadを使う 3.ADODB.StreamのReadを使う などでバイト型配列に読み込まないと 正常に動作しません。
その他の回答 (1)
- MARU4812
- ベストアンサー率43% (196/452)
回答No.1
VBが利用するUnicode形式は、UTF-8ではなく、UTF-16だったと思います。 バイナリで処理する必要があるのでは?
お礼
ご回答有り難うございました。 >VBのステートメントで文字型変数に読み込むとShiftJisに変換されます。 これで納得がいきました。 実はアプリに渡したいテキストデータというのはXMLなのですが XMLの文字コード宣言部分はUTF-8になっている為、 変数に入れたデータの文字コードと、中身の宣言の文字コードが矛盾し 受け取るアプリ側でエラーになっていたようです。 XML内の宣言をShiftJISに変えた所、ばっちり動きました。 本当に有り難うございます。