Pascal Essiembre created TIKA-2219:
--------------------------------------

             Summary: CharsetDetector no longer detects windows-1252 charset
                 Key: TIKA-2219
                 URL: https://issues.apache.org/jira/browse/TIKA-2219
             Project: Tika
          Issue Type: Bug
          Components: parser
    Affects Versions: 1.14
         Environment: Any.
            Reporter: Pascal Essiembre
            Priority: Minor


Starting with Tika 1.14, windows-1252 is no longer detected, as ISO-8859-1 is 
always detected instead.  While not tested, this likely affects other 
windows-125* encodings.

I tracked it down to a change in the 
{{CharsetRecog_sbcs.CharsetRecog_8859_1#getName()}} method.  Now it always 
returns "ISO-8859-1" whereas before it was: {{return haveC1Bytes ? 
"windows-1252" : "ISO-8859-1";}}

Now that condition has been moved to the {{match(CharsetDetector det)}} method 
so that the returned CharsetMatch has the proper name.  The problem with that 
is {{CharsetDetector#detectAll()}} method overwrites the correct match with a 
new one that will return the value of {{#getName()}}  from the 
{{CharsetRecognizer}} instead (which is always "ISO-8859-1" in this case).

There might be legitimate reasons why the {{CharsetMatch}} instances in 
{{detectAll()}} method are replaced with new ones, but changing this code in 
that method appears to work for me:

// Remove this:
//                    CharsetMatch m = new CharsetMatch(this, csr, confidence);
//                    matches.add(m);

// Add this instead:
                    matches.add(charsetMatch);




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to