Skip to content
Charset converter tool and library
Branch: master
Clone or download
Pull request Compare This branch is 195 commits ahead of pinard:master.
Latest commit b26d9a6 May 24, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
build-aux AppVeyor: don’t bother reinstalling packages Jan 30, 2018
contrib Relicense from GPL 2 to GPL 3 Jan 30, 2018
doc Update doc/version.texi and PO files Sep 24, 2018
gl-mod Gnulib-ify Jan 13, 2018
gnulib @ 9e43f06 Update gnulib (fixes #11) Sep 22, 2018
keld charsets.def: fix missing characters in IBM870 Jan 19, 2018
lib Add some gitignore patterns for Windows Jan 29, 2018
m4 Use AC_PATH_PROG instead of AX_WITH_PROG Feb 8, 2018
po Update pofiles May 24, 2019
src src/ fix GNU Make-specific use of $< May 20, 2019
tests Allow tests to run on macOS (fixes #12) Sep 26, 2018
.gitignore Add some gitignore patterns for Windows Jan 29, 2018
.gitmodules Gnulib-ify Jan 13, 2018
.travis.yml Allow tests to run on macOS (fixes #12) Sep 26, 2018
AUTHORS Rename Free recode to Recode Mar 9, 2008
COPYING Relicense from GPL 2 to GPL 3 Jan 30, 2018
COPYING-LIB Version 3.5d Jan 18, 2008
ChangeLog Remove ChangeLog files Jan 14, 2018 Update repo name to canonical case Jun 1, 2018 Relicense from GPL 2 to GPL 3 Jan 30, 2018
NEWS Add NEWS entry for 3.7.1 Sep 24, 2018
README README: Still needed, points to Nov 30, 2013 Move maintainer documentation into Jan 19, 2018
THANKS THANKS: Seanster was not a real name Nov 23, 2011
TODO TODO: remove some, fix one Jun 1, 2018
appveyor.yml AppVeyor: remove comment from another project Feb 7, 2018
bootstrap Gnulib-ify Jan 13, 2018
bootstrap.conf bootstrap.conf: correct the license version (3 not 3.1) and wording May 20, 2019
config.rpath Derived files. Nov 30, 2013 Bump version to 3.7.1 Sep 24, 2018
ltconfig Version 3.5a Jan 18, 2008
mkinstalldirs automake -afc Feb 19, 2008 Version 3.5 Jan 18, 2008
stamp-pot Make it all work to start with! Feb 19, 2008 Relicense from GPL 2 to GPL 3 Jan 30, 2018

README for Recode


What is Recode?

The Recode library converts files between character sets and usages. It recognises or produces over 200 different character sets (or about 300 if combined with an iconv library) and transliterates files between almost any pair. When exact transliteration are not possible, it gets rid of offending characters or falls back on approximations. The recode program is a handy front-end to the library.

Glance through this README file before starting configuration. Make sure you read files ABOUT-NLS and INSTALL if you are not familiar with them already.

The Recode program and library have been written by François Pinard, yet it significantly reuses tabular works from Keld Simonsen. It is an evolving package, and specifications might change in future releases.

On various Unix systems, Recode is usually compiled from sources, see the Installation section below. On Linux, it often comes bundled. Recode had been ported to other popular systems. See both contrib/README and the Non-Unix ports section below, to find some more information about these.

Reports and collaboration

Please file bug reports as GitHub Issues. If you cannot use GitHub, do write directly to A bug report is an adequate description of the problem: your input, what you expected, what you got, and why this is wrong. Patches are welcome, but they only describe a solution, from which the problem might be uneasy to infer. If needed, submit actual data files with your report.

Your feedback will help us to make a better and more portable package. Consider documentation errors as bugs, and report them as such. If you develop anything pertaining to Recode or have suggestions, please share them on GitHub.

The Git repository for Recode gives access, through the magic of Git and GitHub, to all distribution releases, would they be actual or past, pretest or official, as well as individual files.


In a hurry?


More fine-grained instructions follow.


Simple installation of Recode requires the usual tools and facilities as those needed for most GNU packages. If not already bundled with your system, you also need to pre-install Python, version 2.2 or later.

It is also convenient to have some iconv library already present on your system, this much extends Recode capabilities, especially in the area of Asiatic character sets. GNU libc, as found on Linux systems and a few others, already has such an iconv library. Otherwise, you might consider pre-installing the portable libiconv, written by Bruno Haible.

Getting a release

Source files and various distributions (either latest, prestest, or archive) are available through GitHub.

Configure options

Once you have an unpacked distribution, see files:

File nameDescription
ABOUT-NLShow to customise this program to your language
COPYINGcopying conditions for the program
COPYING.LIBcopying conditions for the library
INSTALLcompilation and installation instructions
NEWSmajor changes in the current release
THANKSpartial list of contributors

Besides those configure options documented in files INSTALL and ABOUT-NLS, a few extra options may be accepted by ./configure:

  • Option --with-dmalloc

    to trigger a debugging feature for looking at memory management problems, it pre-requires Gray Watson’s dmalloc package.

You can’t perform that action at this time.