我正在serproxy/thinkerproxy中進行小型Air應用程序中的串行通信。 我有兩個硬件設備來測試它。一種是條形碼掃描儀,它的工作原理非常完美。使用Serproxy/Thinkerproxy的Adobe Air和串行端口通信
另一個是自定義板。這也是一種工作。問題是這些字符是不可讀的。我認爲這是字符集(不知道)的問題,所以我試圖在處理ProgressEvent.SOCKET_DATA事件的函數是這樣的:
var cs:Array = new Array( 'ISO-8859-1',
'ISO-8859-2',
'ISO-8859-3',
'ISO-8859-4',
'ISO-8859-5',
'ISO-8859-6',
'ISO-8859-7',
'ISO-8859-8',
'ISO-8859-9',
'ISO-8859-10',
'ISO-8859-11',
'ISO-8859-12',
'ISO-8859-13',
'ISO-8859-14',
'ISO-8859-15',
'ISO-8859-16',
'ISO-8859-17',
'ISO-8859-18',
'ISO-8859-19',
'ISO-8859-20',
'ASMO-708',
'DOS-720',
'x-mac-arabic',
'windows-1256',
'ibm775',
'windows-1257',
'ibm852',
'x-mac-ce',
'windows-1250',
'gb18030',
'EUC-CN',
'gb2312',
'gb18030',
'hz-gb-2312',
'x-mac-chinesesimp',
'big5',
'x-Chinese-CNS',
'x-Chinese-Eten',
'x-mac-chinesetrad',
'cp866',
'koi8-r',
'koi8-u',
'x-mac-greek',
'windows-1253',
'ibm869',
'DOS-862',
'iso-8859-8-i',
'x-mac-hebrew',
'windows-1255',
'x-EBCDIC-Arabic',
'x-EBCDIC-CyrillicRussian',
'x-EBCDIC-CyrillicSerbianBulgarian',
'x-EBCDIC-DenmarkNorway',
'x-ebcdic-denmarknorway-euro',
'x-EBCDIC-FinlandSweden',
'x-ebcdic-finlandsweden-euro',
'x-ebcdic-finlandsweden-euro',
'x-iscii-as',
'unicode',
'unicodeFFFE',
'utf-7',
'utf-8',
'us-ascii',
'windows-1258',
'x-IA5',
'Windows-1252'
);
for each(var csStr:String in cs){
var info:String = _socket.readMultiByte(_socket.bytesAvailable, csStr);
temp = csStr + ":" + info;
if(info.length > 0)
dispatchEvent(new TextEvent(EVENT_ON_DATA_RECEIVED, false, false, temp));
}
包含值的唯一價值是ISO-8859-1 。並且,它看起來像這樣:
的定製電路板應該發出這樣的:0x40的
所以,不知道什麼是這裏最好的方法(我知道有更多的字符集,我可以試試) 。有任何想法嗎?