[ 
https://issues.apache.org/jira/browse/TIKA-2592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16383350#comment-16383350
 ] 

Andreas Meier edited comment on TIKA-2592 at 3/2/18 10:56 AM:
--------------------------------------------------------------

{quote}Before making this kind of change (default "unicode" to UTF-8), wouldn't 
we want to determine how many HTML documents use "unicode" as the charset and 
are UTF-16 vs. UTF-8?
{quote}
Good point, my suggestion to set UTF-8 as default was a bit 
short-sighted.(That's why I like discussions)
{quote}I'm not sure we should make a rule "unicode->UTF-8", rather we should 
ignore "unicode" if it is in a metaheader and let the charsetdetector do its 
work? What do you think?
{quote}
This might probably be the best solution for the problem,
 Ignoring meta charset="unicode" solves the problem at least for the testfile.
 What do you think about Tims suggestion [~kkrugler]?

Do you have a testcorpus or are you crawling the web [~talli...@mitre.org]?

 

 

Btw: I have tested some strings with Javas Charset.forName() function and you 
often get some default value like "Charset.forName("unicode") = UTF_16" :

"arabic" for example returns "iso-8859-6"

 

So I created two testfiles with windows-1256 encoded text and got the following 
output:

Tika returns

charset=x-MacCyrillic  for [^TestHTMLCharsetCP1256.html]

and

charset=ISO-8859-6 for [^TestHTMLCharsetArabicCP1256.html]

 

I've also tested the webpages with firefox and chromium:

Firefox fails on all files, while chromium detects the correct charset.

 

Do we have to handle things like that? Do we have to find out all strings that 
return a charset when using java.nio.charset.Charset.forName()?


was (Author: andreasmeier):
{quote}
Before making this kind of change (default "unicode" to UTF-8), wouldn't we 
want to determine how many HTML documents use "unicode" as the charset and are 
UTF-16 vs. UTF-8?
{quote}

Good point, my suggestion to set UTF-8 as default was a bit 
short-sighted.(That's why I like discussions)

{quote}
I'm not sure we should make a rule "unicode->UTF-8", rather we should ignore 
"unicode" if it is in a metaheader and let the charsetdetector do its work? 
What do you think?
{quote}

This might probably be the best solution for the problem,
Ignoring meta charset="unicode" solves the problem at least for the testfile.
What do you think about Tims suggestion [~kkrugler]?

Do you have a testcorpus or are you crawling the web [~talli...@mitre.org]?






> HTML with charset unicode handled as utf-16 instead utf-8
> ---------------------------------------------------------
>
>                 Key: TIKA-2592
>                 URL: https://issues.apache.org/jira/browse/TIKA-2592
>             Project: Tika
>          Issue Type: Bug
>    Affects Versions: 2.0, 1.16, 1.17
>            Reporter: Andreas Meier
>            Priority: Major
>         Attachments: TestCharsetUnicodeHTML.html, 
> TestHTMLCharsetArabicCP1256.html, TestHTMLCharsetCP1256.html, 
> fix-for-TIKA2592-contributed-by-Andreas-Meier.patch
>
>
> HTML files are detected as utf-16 when meta content is set to "unicode".
> {code:XML}
> <meta http-equiv="Content-Type" content="text/html; charset="unicode">
>  {code}
>  
> Shouldn't the default be utf-8?
> The attached sample file is shown correctly in:
> Chromium Version 55.0.2883.75
> Firefox 50.1.0
> IE 11
> I am aware that there is no charset "unicode" (available character encodings: 
> [http://www.iana.org/assignments/character-sets/character-sets.xhtml|http://www.iana.org/assignments/character-sets/character-sets.xhtml])
> Unfortunately there are many wrong encodings used out there.
> All unknown encodings should be validated or at least be set to default utf-8.
> Regards 
> Andreas



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to