動作環境
C++ Builder XE4
http://qiita.com/7of9/items/9fa80d146d3fab63a71b
において、TCP/IPの受信方法をTClientSocketからIndy使用に変更していてうまくいっていない。
問題は-32(0xE0)
やc-22(0xEA)
といった値が0x3F
として受信されてしまう部分。
以下に関連しそうな記事を見つけた。
https://social.msdn.microsoft.com/Forums/en-US/411ccdeb-63c3-4fda-8a6a-f86dd1352e4a/how-to-convert-the-byte-255-to-a-signed-char-in-c?forum=csharplanguage
For example ASCII only allows byte values < 128, anything >= 128 will be converted to a '?'.
byteで受信した文字列をsigned charに変換しようとして失敗している。
byteで受信した文字列はそのままbyteで扱うのがいい、とのことらしい。