bson_append_utf8()#
Synopsis#
#define BSON_APPEND_UTF8(b, key, val) \
bson_append_utf8 (b, key, (int) strlen (key), val, (int) strlen (val))
bool
bson_append_utf8 (bson_t *bson,
const char *key,
int key_length,
const char *value,
int length);
Parameters#
bson
: A bson_t.key
: An ASCII C string containing the name of the field.key_length
: The length ofkey
in bytes, or -1 to determine the length withstrlen()
.value
: A UTF-8 encoded string.length
: The number of bytes invalue
excluding the trailing\0
, or -1 to determine the length withstrlen()
.
Description#
The bson_append_utf8() function shall append a UTF-8 encoded string to bson
.
value
MUST be valid UTF-8.
Some UTF-8 implementations allow for \0
to be contained within the string (excluding the termination \0
. This is allowed, but remember that it could cause issues with communicating with external systems that do not support it.
It is suggested to use modified UTF-8 which uses a 2 byte representation for embedded \0
within the string. This will allow these UTF-8 encoded strings to used with many libc functions.
Due to legacy behavior, passing NULL
for value
appends a null value, not a UTF8 value. To append a null value directly, prefer using bson_append_null().
Returns#
Returns true
if the operation was applied successfully. The function will fail if appending the value grows bson
larger than INT32_MAX.