# Encode/Decode Save Data

**URL:** <https://forum.makecode.com/t/encode-decode-save-data/14574>\
**Category:** Help\
**Created:** [July 22, 2022, 11:21pm UTC](https://forum.makecode.com/t/encode-decode-save-data/14574 "2022-07-22T23:21:53Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![Unique](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unique/32/32724_2.png) [@Unique](https://forum.makecode.com/u/Unique)\
**Post date:** [July 25, 2022, 4:19pm UTC](https://forum.makecode.com/t/encode-decode-save-data/14574/4 "2022-07-25T16:19:15Z")

</div>

(NOT FULLY FUNCTIONAL)

Encoder:

```auto
function charToASCII (charInput: string) {
    output = ""
    for (let inx = 0; inx <= charInput.length; inx++) {
        foundCharAtInx = charInput.charAt(inx)
        let myVarAscii = foundCharAtInx.charCodeAt(0)
        output = "" + output + myVarAscii
    }
    console.log(output)
    return output
}

function placeFurniture (item: string) {
    if (item == "Default Comfort Chair") {
        recl = sprites.create(assets.image`myImage17`, SpriteKind.AddedFurniture)
        tiles.placeOnTile(recl, tiles.getTileLocation(selection_box.tilemapLocation().column, selection_box.tilemapLocation().row))
        // Encoding the item
        sprites.setDataString(recl, "type", "" + charToASCII("CHAIR") + charToASCII(":") + charToASCII("DEFAULT") + charToASCII(":") + charToASCII("" + recl.tilemapLocation().column) + charToASCII(":") + charToASCII("" + recl.tilemapLocation().row))
        console.log(sprites.readDataNumber(recl, "type"))
        last = 0
        for (let index = 0; index <= 5; index++) {
            encode_serperate = ""
            for (let index = 0; index <= Math.floor(("" + sprites.readDataNumber(recl, "type")).length / 5); index++) {
                encode_serperate = "" + encode_serperate + ("" + sprites.readDataNumber(recl, "type")).charAt(last + index)
            }
            last = last + (Math.floor(("" + sprites.readDataNumber(recl, "type")).length / 5) + 1)
            furniture.push(parseFloat(encode_serperate))
            console.log(encode_serperate)
        }
        blockSettings.writeNumberArray("savedFurniture", furniture)
    }
}

```

Decoder:

```auto
function LoadSavedFurniture () {
    furniture_data_decoded = ""
    for (let index = 0; index <= Math.floor(furniture.length) / 5; index++) {
        for (let index = 0; index <= 4; index++) {
            last = 0
            for (let index = 0; index <= Math.floor(("" + furniture[index]).length) / 2; index++) {
                decodeDouble = ""
                for (let index = 0; index <= 1; index++) {
                    decodeDouble = "" + decodeDouble + ("" + furniture[index]).charAt(index + last)
                }
                console.log(parseFloat(decodeDouble))
                console.log(String.fromCharCode(parseFloat(decodeDouble)))
                furniture_data_decoded = "" + furniture_data_decoded + String.fromCharCode(parseFloat(decodeDouble))
                last += 2
                console.log(furniture_data_decoded)
            }
        }
    }
}

```

---

_[View the full topic](https://forum.makecode.com/t/encode-decode-save-data/14574)._
