Scroll to navigation



recode - converts files between character sets


recode [OPTION]... [ [CHARSET] | REQUEST [FILE]... ]


Free `recode' converts files between various character sets and surfaces.

If a long option shows an argument as mandatory, then it is mandatory for the equivalent short option also. Similarly for optional arguments.


list one or all known charsets and aliases
restrict charsets according to known PAIRS list
write table NAME on stdout using LN, then exit
write out a C module holding all tables
report all charsets being subset of others
display Copyright and copying conditions
display this help and exit
output version information and exit

Operation modes:

explain sequence of steps and report progress
inhibit messages about irreversible recodings
force recodings even when not reversible
touch the recoded files after replacement
use intermediate files for sequencing passes
use memory buffers for sequencing passes
use pipe machinery for sequencing passes

Fine tuning:

use strict mappings, even loose characters
convert only diacritics or alike for HTML/LaTeX
limit recoding to strings and comments as for LN
use colons instead of double quotes for diaeresis
approximate IBMPC rulers by ASCII graphics
ignore CHARSET while choosing a recoding path

Option -l with no FORMAT nor CHARSET list available charsets and surfaces. FORMAT is `decimal', `octal', `hexadecimal' or `full' (or one of `dohf'). Unless DEFAULT_CHARSET is set in environment, CHARSET defaults to the locale dependent encoding, determined by LC_ALL, LC_CTYPE, LANG. With -k, possible before charsets are listed for the given after CHARSET, both being tabular charsets, with PAIRS of the form `BEF1:AFT1,BEF2:AFT2,...' and BEFs and AFTs being codes are given as decimal numbers. LN is some language, it may be `c', `perl' or `po'; `c' is the default.

REQUEST is SUBREQUEST[,SUBREQUEST]...; SUBREQUEST is ENCODING[..ENCODING]... ENCODING is [CHARSET][/[SURFACE]]...; REQUEST often looks like BEFORE..AFTER, with BEFORE and AFTER being charsets. An omitted CHARSET implies the usual charset; an omitted [/SURFACE]... means the implied surfaces for CHARSET; a / with an empty surface name means no surfaces at all. See the manual.

If none of -i and -p are given, presume -p if no FILE, else -i. Each FILE is recoded over itself, destroying the original. If no FILE is specified, then act as a filter and recode stdin to stdout.


Written by Franc,ois Pinard <>.


Report bugs to <>.


Copyright © 1990, 92, 93, 94, 96, 97, 99 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


The full documentation for recode is maintained as a Texinfo manual. If the info and recode programs are properly installed at your site, the command

info recode

should give you access to the complete manual.

January 2001 Free recode 3.6