【问题标题】:bytearray to string字节数组到字符串
【发布时间】:2011-09-06 12:29:38
【问题描述】:

一个技巧告诉我,我可以使用bytes+"" 将其转换为字符串而不是纯字符串。任何 UI 组件都可以接受它,但当我将 bytes+"" 放入 switch 语句时它不会接受。如何将字节数组转换为纯字符串?

private function socketDataHandler(event:ProgressEvent):void {
    try {
        rsocket = event.target as Socket;
        bytes = new ByteArray();
        rsocket.readBytes(bytes);
        kEvent(bytes+"");
        rsocket.flush();
    } catch (error:Error) {
        Alert.show(error.message, "Error");
    }
}

【问题讨论】:

    标签: flash apache-flex actionscript


    【解决方案1】:

    如果您的字符串是 UTF8,您只需执行以下操作:

    var myString:String = bytes.readUTF();
    

    您可以在此处的文档中看到这一点:

    http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/ByteArray.html

    【讨论】:

    • 转换后出现“#2030: End of file was seen”错误,怎么办?
    • 在这种情况下,字符串的格式不符合 Flash Player 所期望的规范(数组开头必须有一个无符号整数来指示字节数)。您可以指定字节数并使用 readUTFBytes 方法,或者您必须手动进行转换。
    【解决方案2】:

    只需使用 toString() 方法。

    var ba:ByteArray;
    var str:String = ba.toString();
    

    【讨论】:

    • 以及如何将其转换回来?写UTF?
    猜你喜欢
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 2019-05-09
    相关资源
    最近更新 更多