2010-10-01 51 views
2

如何将ByteArray转换为字符串。 toString()不工作,因为我有一些特殊字符,它只显示第一个字符。Flex:ByteArray to string

这里有一个例子:

49, 48, 54, 0, 50, 54, 51, 48, 57, 52, 52, 49, 48, 48, 48, 56, 0, 49, 0, 49, 0, 73, 77, 0, 52, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 49, 0, 50, 54, 51, 49, 53, 56, 50, 52, 48, 48, 48, 52, 0, 0, 0, 0, 49, 53, 49, 46, 48, 48, 0, 0, 70, 82, 0, 0, 0, 0, 54, 48, 55, 48, 90, 81, 57, 51, 0, 70, 82, 0, 48, 0, 70, 67, 65, 0, 76, 73, 86, 82, 89, 0, 0, 54, 48, 55, 48, 90, 81, 57, 51, 0, 70, 82, 0, 69, 85, 82, 0, 52, 50, 48, 48, 46, 48, 48, 0, 49, 0, 49, 0, 51, 48, 0, 0, 66, 65, 86, 75, 76, 0, 0, 49, 48, 49, 48, 52, 0, 0, 0, 0, 0, 49, 48, 49, 48, 54, 57, 49, 48, 49, 53, 0, 0, 0 

感谢名单的时间。

回答

1

使用String.fromCharCode

var myStr:String = String.fromCharCode(49, 48, 54, 32, 50, 54, 51, 48, 57, 52, 52, 49, 48, 48, 48, 56, 32, 49, 32, 49, 32, 73, 77, 32, 52, 32, 32, 32, 32, 32, 32, 32, 32, 49, 32, 49, 32, 50, 54, 51, 49, 53, 56, 50, 52, 48, 48, 48, 52, 32, 32, 32, 32, 49, 53, 49, 46, 48, 48, 32, 32, 70, 82, 32, 32, 32, 32, 54, 48, 55, 48, 90, 81, 57, 51, 32, 70, 82, 32, 48, 32, 70, 67, 65, 32, 76, 73, 86, 82, 89, 32, 32, 54, 48, 55, 48, 90, 81, 57, 51, 32, 70, 82, 32, 69, 85, 82, 32, 52, 50, 48, 48, 46, 48, 48, 32, 49, 32, 49, 32, 51, 48, 32, 32, 66, 65, 86, 75, 76, 32, 32, 49, 48, 49, 48, 52, 32, 32, 32, 32, 32, 49, 48, 49, 48, 54, 57, 49, 48, 49, 53, 32, 32); 

编辑:替换32(空间)的零个字节0,你会得到这样的:

106 263094410008 1 1 IM 4 1 1 263158240004 151.00 FR 6070ZQ93 FR 0 FCA LIVRY 6070ZQ93 FR EUR 4200.00 1 1 30 BAVKL 10104 1010691015

+0

感谢名单@splash的快速解答,但是我面临着与使用.toString()时相同的问题,它不显示所有的字符,有什么想法为什么?或者还有其他什么用途。 – Adnan 2010-10-01 19:03:55

+0

我现在无法测试它,但可能不允许零字节。 – splash 2010-10-01 19:07:02

1

为了将来的参考,你可以将一个字节数组转换成一个Base64字符串,这将是一个更为标准的将二进制串行化为字符串的方式。

对MX库有一个Base64编码器/解码器类,但也有一些其他的实现奠定左右....

对这篇文章的读:http://jpauclair.net/2010/01/09/base64-optimized-as3-lib/

+0

thanx @slomojo会去看看。 – Adnan 2010-10-02 14:56:42