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

Access2010(VBA)+BASP21を利用して
別のアプリに対してテキストデータをソケット通信で受け渡す際の
文字コードについて教えて下さい。

まず、受け取る側のアプリはUTF-8でないと
受け取れない仕様となっております。

Accessから送信する際は、あらかじめUTF-8で保存された
テキストファイルを変数に読み込み、それをBASP21から送信しているのですが
どうやら、送信する時に文字コードが変わっている?のか
ただしくデータを受け取ってくれません。
(アプリの受信ログを見ると、受け取ったデータが
一部文字化けしておりました)

Accessからデータを送信する際に、確実にUTF-8にて
データを送信したいのですが、どのような方法があるでしょうか。
ご存じの方、教えて下さい。宜しくお願い致します。

A 回答 (2件)

>テキストファイルを変数に読み込み


VBのステートメントで文字型変数に
読み込むとShiftJisに変換されます。
というか、ShiftJisだと見て処理され、
変換できないものは字化けします。
文字型変数を経由した時点でアウト
です。
1.バイナリ型のI/Oにする
2.BASP21のBinaryReadを使う
3.ADODB.StreamのReadを使う
などでバイト型配列に読み込まないと
正常に動作しません。
    • good
    • 0
この回答へのお礼

ご回答有り難うございました。

>VBのステートメントで文字型変数に読み込むとShiftJisに変換されます。

これで納得がいきました。
実はアプリに渡したいテキストデータというのはXMLなのですが
XMLの文字コード宣言部分はUTF-8になっている為、
変数に入れたデータの文字コードと、中身の宣言の文字コードが矛盾し
受け取るアプリ側でエラーになっていたようです。

XML内の宣言をShiftJISに変えた所、ばっちり動きました。
本当に有り難うございます。

お礼日時:2012/02/28 11:00

VBが利用するUnicode形式は、UTF-8ではなく、UTF-16だったと思います。


バイナリで処理する必要があるのでは?
    • good
    • 0

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