I have uploaded version 1.35 of MARC::Charset to CPAN.  This is a
relatively significant bugfix release, particularly for folks who need
to handle MARC-8 records containing extended Cyrillic and Arabic
characters.  Changes from 1.34 are:

- improve conversion of certain composed characters to MARC8

  Some characters should not be fully decomposed
  before converting them to MARC8.  This patch adds
  a table of such characters, based on Annex A of
  and on some sample records provided by Jason
  Stephenson of MVLC.

- recognize G0 and G1 characters properly

  When converting from MARC8 to UTF8, MARC::Charset now
  properly recognizes if a (single-byte) MARC8 character falls
  in G0 or G1.

  This is part of the fix for RT#63271 (converting characters
  in the Extended Cyrillic character set), but should also
  fix similar issues with converting characters in the extended
  Arabic set.

  This commit also means that all MARC8 character sets that support
  both G0 and G1 wll be properly converted, regardless of whether
  they're currently set as the G0 or G1 character set.  For example,
  it is now possible to convert Extended Latin as G0 or Basic Latin
  as G1.

  This fixes RT#63271

- have MARC::Charset::Code->marc_value() handle G0/G1 conversion

  Since there's at present no need to do things like have
  ANSEL be the G0 character set when converting from UTF8 to
  MARC8, this commit centralizes the logic for deciding
  whether to return the G0 or G1 MARC8 representation of a

  Also add MARC::Charset::Code->g0_marc_value(), which returns
  the G0 representation of the character for use by the
  character DB.

- New test cases for converting Vietnamese and Extended Cyrillic


Galen Charlton

Reply via email to