2017-12-20 20 views
1

私はJsoupを使ってウェブページをスクラップしています。それはテキストを取り込み、それをデータベースに直接入力します。mysqlデータベースの特定の文字を照合utf-8で置き換える疑問符はなぜですか?

対象のWebページのテキストは完全にうまく見えますが、データベースに入力すると、特定の文字を置き換える疑問符が表示されます。例えば

単一の右引用符(U + 2019)次の文で:

私は、ええと 想像力の影響を受けていない人間の努力のドメインを想像することはできません。

は、データベースに次のように表示されますと、私はそれを出力してるウェブページ:??

私はtはトン の影響を受け、ええとにISN人間の努力のドメインを想像することができます想像力。当初、私は現在で働いているSQLデータベースがである

...私は、これはデータベースの文字セット/照合を持つだけの問題でだと思ったが、さまざまな種類を試した後、問題が解決しない

UTF-8:

mysql> SHOW VARIABLES LIKE 'character\_set\_%'; 
+--------------------------+--------+ 
| Variable_name   | Value | 
+--------------------------+--------+ 
| character_set_client  | utf8 | 
| character_set_connection | utf8 | 
| character_set_database | utf8 | 
| character_set_filesystem | binary | 
| character_set_results | utf8 | 
| character_set_server  | utf8 | 
| character_set_system  | utf8 | 
+--------------------------+--------+ 

とメタが設定されている:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

私は特にJavaでそれを設定しようとしましたそのように:これはあるかもしれない理由を任意のアイデア..私は新しいデータベースと何も動作するようです作成しようとしました

SET NAMES 'utf8' 
SET CHARACTER SET utf8 

url = "jdbc:mysql://localhost:3306/somedb?useUnicode=true&characterEncoding=utf-8"; 

私のようなSQLクエリを試してみましたハプニング?

+0

で見る "疑問符" あなたはUTF-8にJsoupエンコーディングを設定しようとしたことがありますか? –

+0

はい、ちょうどそれを今試みました、残念ながら同じ問題をまだ得ています。しかし良い提案 –

答えて

1

Jsoupは、クロールされるウェブページの文字セットを自動的に検出します。 しかし、多くのウェブサイトでは、文字セットを定義しないことによって、コンテンツタイプのヘッダーとともに文字セットのエンコーディングを設定していません。

HTTP応答のContent-Typeヘッダーにcharset属性がないWebページをクロールすると、Jsoupはプラットフォームのデフォルト文字セットを使用してページを解析します。つまり、プラットフォームのデフォルト文字セットがクロールしているWebページと異なる可能性があるため、期待した結果が得られない可能性があります。 文字が失われたり、誤って解析または印刷されたりすることがあります。ページの作品を作るために、いくつかのステップが正しくあり

String page = "http://www.somepage.com"; 

//get input stream from the URL 
InputStream in = new URL(page).openStream(); 

//parse document using input stream and specify the charset 
Document doc = Jsoup.parse(in, "ISO-8859-1", page); 

//..do your processing 
+0

あなたの答えをありがとう。残念ながら、これは@Luke Bajadaが上記のコメントにjsoupエンコーディングを記述した後に試したものでした。それはどちらも動作しませんでした: '( また、エンコードは私が掻いているページに設定されています –

関連する問題