Sample code for 30+ languages & platforms
PureBasic

Decode from Binary Encoding and Append String

Demonstrates how to decode from a binary encoding (base64, hex, url, etc.) and then append the decoded string to a Chilkat StringBuilder object.

Note: This example uses the new DecodeAndAppend method added in Chilkat v9.5.0.87.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkStringBuilder.pb"

Procedure ChilkatExample()

    success.i = 0

    ; We have the string "MÆRSK" in two forms:

    ; This is the URL encoding of the windows-1252 representation.
    nameWindows1252UrlEncoded.s = "M%C6RSK"

    ; This is the URL encoding of the utf-8 representation.
    nameUtf8UrlEncoded.s = "M%C3%86RSK"

    ; Note that the result of loading a string into a string object 
    ; is the same if we correctly specify the underlying charset encoding.
    ; In the above example, we have the same string, but in different charset encodings
    ; subsequently URL encoded.
    sb1.i = CkStringBuilder::ckCreate()
    If sb1.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkStringBuilder::ckDecodeAndAppend(sb1,nameWindows1252UrlEncoded,"url","windows-1252")

    sb2.i = CkStringBuilder::ckCreate()
    If sb2.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkStringBuilder::ckDecodeAndAppend(sb2,nameUtf8UrlEncoded,"url","utf-8")

    ; sb1 and sb2 both hold the same string.
    bEqual.i = CkStringBuilder::ckContentsEqualSb(sb1,sb2,1)
    Debug "bEqual = " + Str(bEqual)

    ; We can see the string is "MÆRSK" in both cases.
    Debug CkStringBuilder::ckGetAsString(sb1)
    Debug CkStringBuilder::ckGetAsString(sb2)


    CkStringBuilder::ckDispose(sb1)
    CkStringBuilder::ckDispose(sb2)


    ProcedureReturn
EndProcedure