### Method

# GLib IConv

#### Declaration

    gsize
    g_iconv (
      GIConv converter,
      gchar** inbuf,
      gsize* inbytes_left,
      gchar** outbuf,
      gsize* outbytes_left
    )

#### Description

Same as the standard UNIX routine iconv(), but may be implemented via libiconv on UNIX flavors that lack a native implementation.

GLib provides `g_convert()` and `g_locale_to_utf8()` which are likely more convenient than the raw iconv wrappers.

Note that the behaviour of `iconv()` for characters which are valid in the input character set, but which have no representation in the output character set, is implementation defined. This function may return success (with a positive number of non-reversible conversions as replacement characters were used), or it may return -1 and set an error such as `EILSEQ`, in such a situation.

This method is not directly available to language bindings.

#### Parameters

`inbuf`

  Type: `gchar**`

  Bytes to convert.

  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`inbytes_left`

  Type: `gsize*`

  Inout parameter, bytes remaining to convert in `inbuf`.

  The argument will be modified by the function.

`outbuf`

  Type: `gchar**`

  Converted output bytes.

  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

`outbytes_left`

  Type: `gsize*`

  Inout parameter, bytes available to fill in `outbuf`.

  The argument will be modified by the function.

#### Return value

Type: `gsize`

Count of non-reversible conversions, or -1 on error.