Sample code for 30+ languages & platforms
Zig

Load ucs2 XML File (utf-16)

See more XML Examples

Demonstrates how to load a ucs2 (utf-16 little-endian) XML file into Chilkat XML.

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();

    // If the XML file specifies the encoding in the XML declaration, such as:
    // <?xml version = "1.0" encoding = "UTF-16" standalone = "no" ?>
    // Then it's simply a matter of calling LoadXmlFile.
    // Chilkat will automatically read the XML declaration and will
    // process the file correctly.   For example:

    const xml = try chilkat.Xml.init();
    defer xml.deinit();
    try xml.loadXmlFile("qa_data/xml/sample_ucs2.xml");

    // If, however, there is no XML declaration to indicate the character encoding,
    // then you must explicitly read the file according to what you know
    // is the correct encoding.  For example:
    const sb = try chilkat.StringBuilder.init();
    defer sb.deinit();
    try sb.loadFile("qa_data/xml/sample_ucs2.xml", "utf-16");
    // Assuming success...
    try xml.loadSb(sb, true);

    // To convert to the XML from utf-16 to utf-8, do the following:
    xml.setEncoding("utf-8");
    std.debug.print("{s}\n", .{try xml.getXml(alloc)});
    try xml.saveXml("qa_output/sample_utf8.xml");
}