+ mechanism in the application. <br>
+ <br>
+ <br>
+
+
+
+
+ The source distribution of <code>gedcom-parse</code> contains an example implementation (<code>utf8-locale.c</code> and <code>utf8-locale.h</code>
+ in the top directory). Feel free to use it in
+your source code (it is not part of the library, and it isn't installed anywhere,
+so you need to take over the source and header file in your application).
+ <br>
+ <br>
+
+Its interface is:<br>
+ <blockquote><pre><code>char *<b>convert_utf8_to_locale</b> (char *input, int *conv_failures);<br>char *<b>convert_locale_to_utf8</b> (char *input);<br></code></pre></blockquote>
+
+Both functions return a pointer to a static buffer that is overwritten on
+each call. To function properly, the application must first set the
+locale using the <code>setlocale</code> function (the second step detailed below).
+ All other steps given below, including setting up and closing down the conversion
+handles, are transparantly handled by the two functions. <br>
+ <br>
+If you pass a pointer to an integer to the first function, it will be set
+to the number of conversion failures, i.e. characters that couldn't be converted;
+you can also just pass <code>NULL</code> if you are not interested (note that usually, the interesting information is just whether there <i>were</i>
+ conversion failures or not, which is then given by the integer being bigger
+than zero or not). The second function doesn't need this, because any
+locale can be converted to UTF-8.<br>
+ <br>
+
+You can change the "?" that is output for characters that can't be converted
+to any string you want, using the following function before the conversion
+calls:<br>
+ <blockquote><pre><code>void <b>convert_set_unknown</b> (const char *unknown);</code></pre></blockquote>
+ <br>
+If you want to have your own functions for it instead of this example implementation, the following steps need to