USEMARCON is a rule-based MARC record manipulation program and library. It is free, open source, written in C++. USEMARCON can be used interactively with USEMARCON GUI (see below), in batch processing using the command line version and it's also possible to integrate the library with other software (this has been done e.g. with YAZ Proxy (link is external)).
USEMARCON has native support for UTF-8. It can also convert MARC-8 to UTF-8 and handle other character set conversions with conversion tables.
USEMARCON can read and write ISO2709 (the MARC exchange format), MARCXML and MarcXchange (input and output formats independently).
The Metadata Services page at the British Library (chapter Catalogue record conversion software) contains information on USEMARCON.