[vdr] wrong characters in EPG (vdr-1.5.18)

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Wed Mar 26 13:52:32 CET 2008


On 03/26/08 13:39, Lucian Muresan wrote:
> Klaus Schmidinger wrote:
> [..]
>>>>> Please try setting VDR_CHARSET_OVERRIDE=ISO-8859-9 before starting
>>>>> VDR. This should fix it.
>>>> This is fixed !
>>>>
>>>> Thank you.
>>> Looks like this is set globally, for all of the epg data, right? What 
>>> about mixed charsets from different providers (I know for sure there 
>>> are, and there are also the "external" data sources like tvmovie2vdr and 
>>> the like fetching some xmltv listings and injecting the data via SVDRP)?
>> The DVB standard provides for a way to mark text strings, so that
>> applications can correctly determine the actual encoding. The
>> VDR_CHARSET_OVERRIDE is just a workaround in case your "main"
>> provider fails to correctly encode their strings.
> 
> Am I missing something, is there a way to mark a provider as being my 
> "main" one? Or is the workaround rather replacing the character set for 
> all incorrectly recognized ones (assuming that the application 
> determines the fact that it is incorrect)? If the latter case occures, 
> what if there are several providers not marking the encoding right, but 
> their epg content actually need different encodings, will they all use 
> the same encoding specified in VDR_CHARSET_OVERRIDE? (This reminds me of 
> the early UTF-8 patch which required setting the encoding for every 
> channel in channels.conf, which of course is ugly, but could handle 
> different EPG encoding needs in case of multiple providers failing to 
> mark this correctly).

Well, first and foremost providers should actually do their homework
and encode their stuff according to the standard.

The problem is with providers who don't add a codeset marker to their
strings. This is ok as long as they actually encode in ISO6937.
Unfortunately some providers use ISO-8859-9 instead (or maybe even
others). With VDR_CHARSET_OVERRIDE set, all strings that are not
explicitly marked as using a specific codeset are assumed to be
encoded in the way given by VDR_CHARSET_OVERRIDE.

>> External data source simply need to provide the strings in the
>> encoding used on your local system (presumably UTF-8).
> 
> So it should work in the case of correctly handling external data, thanks.
> 
> BTW, OSD then stays unaffected by VDR_CHARSET_OVERRIDE? It might be 
> worth renaming this to something more clearly specifying that it only 
> affects EPG.

This was just a last minute quick workaround (initially this was hardcoded),
since some (esp. Czech) providers actually do encode their strings in
ISO6937, and I didn't want to cause problems with those who do adhere to
the standard.

An elaborate workaround would probably require a separare file
in which transponders can be marked as using a specific default
codeset (and then VDR_CHARSET_OVERRIDE would vanish again).

But it would be so much better if these providers would just follow
the standard! Yes, I know, these are multi million dollar enterprises,
so they can't be bothered with "standards" - oh well...

Klaus



More information about the vdr mailing list