Sample code for 30+ languages & platforms
Zig

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 Zig Downloads

Zig
const std = @import("std");
const chilkat = @import("chilkat");

pub fn main(init: std.process.Init) !void {
    const alloc = init.arena.allocator();

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

    // This is the URL encoding of the windows-1252 representation.
    const name_windows1252_url_encoded = "M%C6RSK";

    // This is the URL encoding of the utf-8 representation.
    const name_utf8_url_encoded = "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.
    const sb1 = try chilkat.StringBuilder.init();
    defer sb1.deinit();
    try sb1.decodeAndAppend(name_windows1252_url_encoded, "url", "windows-1252");

    const sb2 = try chilkat.StringBuilder.init();
    defer sb2.deinit();
    try sb2.decodeAndAppend(name_utf8_url_encoded, "url", "utf-8");

    // sb1 and sb2 both hold the same string.
    const b_equal = sb1.contentsEqualSb(sb2, true);
    std.debug.print("bEqual = {}\n", .{b_equal});

    // We can see the string is "MÆRSK" in both cases.
    std.debug.print("{s}\n", .{try sb1.getAsString(alloc)});
    std.debug.print("{s}\n", .{try sb2.getAsString(alloc)});
}