<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">
\begin{DoxyItemize}
\item infos = Information about iconv plugin is in keys below
\item infos/author = Markus Raab \href{mailto:elektra@libelektra.org}{\texttt{ elektra@libelektra.\+org}}
\item infos/licence = BSD
\item infos/provides = conv
\item infos/needs =
\item infos/placements = postgetstorage presetstorage
\item infos/status = maintained unittest libc
\item infos/description = Converts values of keys between charsets
\end{DoxyItemize}\hypertarget{md_src_plugins_iconv_README_src_plugins_iconv_README_md}{}\doxysection{Introduction}\label{md_src_plugins_iconv_README_src_plugins_iconv_README_md}
This plugin is a filter plugin that converts between different character encodings.\hypertarget{md_src_plugins_iconv_README_autotoc_md282}{}\doxysection{Installation}\label{md_src_plugins_iconv_README_autotoc_md282}
See \mbox{\hyperlink{doc_INSTALL_md}{installation}}. The package is called {\ttfamily libelektra5-\/extra}.\hypertarget{md_src_plugins_iconv_README_autotoc_md283}{}\doxysection{Purpose}\label{md_src_plugins_iconv_README_autotoc_md283}
Consider a user insisting on a {\ttfamily latin1} character encoding because of some old application. All other users already use, for example, {\ttfamily UTF-\/8}. For these users, the configuration files are encoded in {\ttfamily UTF-\/8}. So we need a solution for the user with {\ttfamily latin1} to access the key database with proper encoding.

On the other hand, contemplate an XML file which requires a specific encoding. But the other key databases work well with the users encoding. So a quick fix for that backend is needed to feed that XML file with a different encoding.

The iconv plugin provides a solution for both scenarios. It converts between many available character encodings. With the pluginâ€™s configuration the user can change the from and to encoding. The default values of the plugin configuration are\+: {\ttfamily from} encoding will be determined at run-\/time. {\ttfamily to} encoding is {\ttfamily UTF-\/8}.

Parameters\+:


\begin{DoxyItemize}
\item {\ttfamily to} is per default UTF-\/8, to have unicode configuration files
\item {\ttfamily from} is per default the users locale
\end{DoxyItemize}

Note that for writing the configuration {\ttfamily from} and {\ttfamily to} is swapped. A key database that requires a specific encoding can make use of it. To sum up, every user can select a different encoding, but the key databases are still properly encoded for anyone.\hypertarget{md_src_plugins_iconv_README_autotoc_md284}{}\doxysection{Example}\label{md_src_plugins_iconv_README_autotoc_md284}
For example {\ttfamily iconv/iconv.\+ini} should be {\ttfamily latin1}, but all users have {\ttfamily UTF-\/8} settings\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{\# Mount the file `iconv/iconv.ini` using the `mini` plugin together with `iconv`}
\DoxyCodeLine{sudo kdb mount "{}\$PWD/src/plugins/iconv/iconv/iconv.ini"{} system:/tests/iconv mini iconv from=UTF-\/8,to=ISO-\/8859-\/1}
\DoxyCodeLine{}
\DoxyCodeLine{\# Check the file type of the mounted file}
\DoxyCodeLine{file -\/b "{}`kdb file system:/tests/iconv`"{}}
\DoxyCodeLine{\#&gt; ISO-\/8859 text}
\DoxyCodeLine{}
\DoxyCodeLine{kdb get system:/tests/iconv/a         \# converts ISO-\/8859 to UTF-\/8}
\DoxyCodeLine{\#&gt; hellÃ¶}
\DoxyCodeLine{}
\DoxyCodeLine{kdb set system:/tests/iconv/a Ã¶Ã¤ÃŸ     \# converts UTF-\/8 to ISO-\/8859}
\DoxyCodeLine{kdb get system:/tests/iconv/a}
\DoxyCodeLine{\#&gt; Ã¶Ã¤ÃŸ}
\DoxyCodeLine{}
\DoxyCodeLine{\# Cleanup}
\DoxyCodeLine{kdb set system:/tests/iconv/a hellÃ¶}
\DoxyCodeLine{sudo kdb umount system:/tests/iconv}

\end{DoxyCode}
 </pre></body></html>