libcdio-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Libcdio-devel] How tolerant to be towards CD-TEXT character set mis


From: Rocky Bernstein
Subject: Re: [Libcdio-devel] How tolerant to be towards CD-TEXT character set mislabeling ?
Date: Sat, 27 Apr 2019 16:53:38 -0400

As Thomas asks below: should libcdio's CD-TEXT change its behavior from
assuming an ASCII-encoding by default to instead to use and ISO-8859-1
encoding, which includes ASCII as a subset?

Unless there is dissent, or have other ideas, we will switch to ISO-8859-1
as the default CDTEXT encoding.

Thanks for offering your consideration and thoughts.


On Sat, Apr 27, 2019 at 10:48 AM Thomas Schmitt <address@hidden> wrote:

> Hi
>
> in the course of
>   https://savannah.gnu.org/bugs/?53929
> it turned out that the CD in question announces to have its CD-TEXT
> encoded in 7-bit ASCII, but then has 8-bit characters as of ISO-8859-1.
>
> Having pondered how to deal with this situation, i come to the conclusion
> that either libcdio should refuse to show such a text, or retry with
> ISO-8859-1.
> The retry can be cut short due to the fact that ISO-8859-1 officially
> includes ASCII as its codes below 128 (decimal).
>
> So it is about the boss decision whether to simply decode ASCII as
> ISO-8859-1 rather than to possibly let iconv take offense from 8-bit
> characters.
>
> Rocky will have to decide in the end. But others are invited to tell
> their opinion.
>
> I vote for being tolerant.
>
> In the bug report i asked Serge Pouliquen to test this:
>
> --- lib/driver/cdtext.c 2018-06-14 17:26:07.742400554 +0200
> +++ lib/driver/cdtext.bug53929.c        2019-04-27 15:08:22.336291660 +0200
> @@ -717,7 +717,12 @@ cdtext_data_init(cdtext_t *p_cdtext, uin
>              charset = (char *) "ISO-8859-1";
>              break;
>            case CDTEXT_CHARCODE_ASCII:
> -            charset = (char *) "ASCII";
> +            /* ASCII is a subset of ISO-8859-1. Some CDs announce it but
> then
> +             * have 8-bit characters in their text. Trying ISO-8859-1
> gives
> +             * more hope for a readable result than telling iconv to be
> picky.
> +             */
> +            charset = (char *) "ISO-8859-1";
>              break;
>            case CDTEXT_CHARCODE_SHIFT_JIS:
>              charset = (char *) "SHIFT_JIS";
>
>
> Have a nice day :)
>
> Thomas
>
>
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]