---
name: "recode"
section: "1"
platform: "linux"
package: "recode"
version: "3.7.17-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/recode"
---

# recode(1)

converts files between character sets

## NAME

recode - converts files between character sets

## SYNOPSIS

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

## DESCRIPTION

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.

### Listings:

- **-l**, **--list**\[=*FORMAT*\]

  list one or all known charsets and aliases

- **-k**, **--known**=*PAIRS*

  restrict charsets according to known PAIRS list

- **-h**, **--header\[**=*\[LN*/\]NAME\]

  write table NAME on stdout using LN, then exit

- **-T**, **--find-subsets**

  report all charsets being subset of others

- **-C**, **--copyright**

  display copyright and copying conditions

- **--help**

  display this help and exit

- **--version**

  output version information and exit

### Operation modes:

- **-v**, **--verbose**

  explain sequence of steps and report progress

- **-q**, **--quiet**, **--silent**

  inhibit messages about irreversible recodings

- **-f**, **--force**

  force recodings even when not reversible

- **-t**, **--touch**

  touch the recoded files after replacement

- **-i**, **-p**, **--sequence**=*STRATEGY*

  ignored for backwards compatibility

### Fine tuning:

- **-s**, **--strict**

  use strict mappings; discard untranslatable characters

- **-d**, **--diacritics**

  convert only diacritics and special characters for HTML/LaTeX/BibTeX

- **-S**, **--source**\[=*LN*\]

  limit recoding to strings and comments as for LN

- **-c**, **--colons**

  use colons instead of double quotes for diaeresis

- **-g**, **--graphics**

  approximate IBMPC rulers by ASCII graphics

- **-x**, **--ignore**=*CHARSET*

  ignore CHARSET while choosing a recoding path

- **-I**, **--prefer-iconv**

  use iconv if possible

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.

Each FILE is recoded over itself, destroying the original.  If no FILE is specified, then act as a filter and recode stdin to stdout.

## MAINTAINER

Maintained by Reuben Thomas \<rrt@sc3d.org\>.

## AUTHOR

Written by François Pinard \<pinard@iro.umontreal.ca\>.

## REPORTING BUGS

Report bugs at https://github.com/rrthomas/recode

## COPYRIGHT

Copyright © 1990-2023 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.

## SEE ALSO

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.
