🌊

【Zig】不正なバイト列のチェックと代替文字への置き換え

2024/04/16に公開

不正なバイト列のチェックには utf8ValidateSlice、代替文字(U+FFFD)への置き換えには fmtUtf8(Zig 0.12 開発版で導入)を使う

const std = @import("std");
const print = std.debug.print;
const utf8ValidateSlice = std.unicode.utf8ValidateSlice;
const fmtUtf8 = std.unicode.fmtUtf8;

pub fn main() !void {
    const bytes = [_]u8 { 0x61, 0x62, 0xff };
    print("{}\n", .{ utf8ValidateSlice(&bytes) });
    print("{}\n", .{ fmtUtf8(&bytes) });
}

Discussion