home
products
contribute
download
documentation
forum
Home
Forums
New posts
Search forums
What's new
New posts
All posts
Latest activity
Members
Registered members
Current visitors
Donate
Log in
Register
What's new
Search
Search
Search titles only
By:
New posts
Search forums
Search titles only
By:
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
MediaPortal 1
Support
Electronic Program Guide
DVB-S EPG wrong character encoding for Hungarian language
Contact us
RSS
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="Vasilich" data-source="post: 1038809" data-attributes="member: 97516"><p>i can say how it works in stock MP:</p><p> 1. in one place, TvCardDvbBase, czech language will be checked and forced to use ISO 6937, ignoring encoding flags:</p><p>[CODE=c#]if (language.ToUpperInvariant() == "CZE" || language.ToUpperInvariant() == "CES")</p><p> {</p><p> title = Iso6937ToUnicode.Convert(ptrTitle);</p><p> description = Iso6937ToUnicode.Convert(ptrDesc);</p><p> }[/CODE]</p><p>2. at another place, in DvbTextConverter, current locale will be checked for czech (again!) and russian/belorussian/ukrainian, for both cases forcing predefined encoding if no encoding flag found in text (and, thus, ISO 6937 should be used):</p><p>[CODE=c#] lang = lang.ToLowerInvariant();</p><p> if (lang == "cze" || lang == "ces")</p><p> {</p><p> encoding = 20269; //ISO-6937</p><p> }</p><p> else if (lang == "ukr" || lang == "bel" || lang == "rus")</p><p> {</p><p> encoding = 28595; //ISO-8859-5</p><p> }[/CODE]</p><p>What currently absents in stock MP is the proper (i.e. according to specs) handling of empty encoding flags. </p><p> Specs tell that if no encoding byte specified - then use superset of ISO 6937.</p><p> MP, if encoding byte isn't there, takes default for TVService user ANSI codepage : [CODE=c#]encoding = CultureInfo.CurrentCulture.TextInfo.ANSICodePage;[/CODE]</p><p>MP approach can work better for providers that don't follow DVB specs, and can result in wrong encoding for those broadcasters that use correct default encoding ISO 6937 (e.g. UPC Direct).</p><p></p><p>I have one idea: when no encoding specified, i can first check if given string has 6937 encoding. I will check if there are any non-specified in 6937 symbols or symbol combinations present in given string, and if yes - then we have bad provider, and try to take second option - convert it according to current ANSI codepage. Seems correct?</p></blockquote><p></p>
[QUOTE="Vasilich, post: 1038809, member: 97516"] i can say how it works in stock MP: 1. in one place, TvCardDvbBase, czech language will be checked and forced to use ISO 6937, ignoring encoding flags: [CODE=c#]if (language.ToUpperInvariant() == "CZE" || language.ToUpperInvariant() == "CES") { title = Iso6937ToUnicode.Convert(ptrTitle); description = Iso6937ToUnicode.Convert(ptrDesc); }[/CODE] 2. at another place, in DvbTextConverter, current locale will be checked for czech (again!) and russian/belorussian/ukrainian, for both cases forcing predefined encoding if no encoding flag found in text (and, thus, ISO 6937 should be used): [CODE=c#] lang = lang.ToLowerInvariant(); if (lang == "cze" || lang == "ces") { encoding = 20269; //ISO-6937 } else if (lang == "ukr" || lang == "bel" || lang == "rus") { encoding = 28595; //ISO-8859-5 }[/CODE] What currently absents in stock MP is the proper (i.e. according to specs) handling of empty encoding flags. Specs tell that if no encoding byte specified - then use superset of ISO 6937. MP, if encoding byte isn't there, takes default for TVService user ANSI codepage : [CODE=c#]encoding = CultureInfo.CurrentCulture.TextInfo.ANSICodePage;[/CODE] MP approach can work better for providers that don't follow DVB specs, and can result in wrong encoding for those broadcasters that use correct default encoding ISO 6937 (e.g. UPC Direct). I have one idea: when no encoding specified, i can first check if given string has 6937 encoding. I will check if there are any non-specified in 6937 symbols or symbol combinations present in given string, and if yes - then we have bad provider, and try to take second option - convert it according to current ANSI codepage. Seems correct? [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
MediaPortal 1
Support
Electronic Program Guide
DVB-S EPG wrong character encoding for Hungarian language
Contact us
RSS
Top
Bottom