1

ペルシア語を含むGooglehttp://translate.google.com/translate_a/t?client=t&hl=en&sl=auto&tl=fa&multires=1&prev=btn&ssel=0&tsel=3&uptl=fa&alttl =en&sc=1 & text=helloから次のリンクを取得しますアルファベットなので、次のコードでmysqlデータベースに保存したいと思います。


pageurl = new URL("http://translate.google.com/translate_a/t?client=t&hl=en&sl=auto&tl=fa&multires=1&prev=btn&ssel=0&tsel=3&uptl=fa&alttl=en&sc=1&text=of");
t = pageurl.openConnection();
t.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");

in = new BufferedReader(new InputStreamReader(t.getInputStream()));
preparedStatement2 = con.prepareStatement("update `en_db` set `meaning` = ? where `id` = ?");
preparedStatement2.setString(1, in.readLine());
preparedStatement2.setInt(2, id);
preparedStatement2.executeUpdate();
in.close();

しかし、それはデータベースに何か間違ったものを保存します

via "、" per "、" of "、" with "]]]]]、" en ",, [[" ?? "、[5]、0,0,1000,0,1,0]]、 [["of"、4 ,,, ""]、["of"、5、[["??"、1000,0,0]、[" ?? ?? "、0,0,0]、[" ??????? ?? "、0,0,0]、[" ?? ?? "、0,0,0]]、[[0,2]]、" of "]] ,,,, 6]
印刷するSystem.out.printlnと表示されます
[[["از"、 "of"、 ""、 ""]]、[["前置詞"、["از"、 "ازلحاظ"、 "ازطرف"、 "درباره"、 "درجهت"、 "ز"、 "ازمبدا"、 "ازمنشا"、 "درسوی"、 "بوسیله"]、[["از"、["of"、 "from"、 "in"、 "by"]]、[ "ازلحاظ"、["of"]]、["ازطرف"、["for"、 "of"、 "for"]]、["درباره"、["about"、 "on"、 "について"、 "of"、 "toward"、 "in re"]]、["درجهت"、["of"、 "with"]]、["ز"、["of"]]、[" ازمبدا"、[" of "]]、["ازمنشا "、[" of "]]、["درسوی "、[" of "]]、["بوسیله"、["by "、"via "、" per "、" of "、" with "]]]]]、" en ",,[["از"、[5]、0,0,1000,0,1,0]]、[ ["of"、4 ,,, ""]、["of"、5、[["از"、1000,0,0]、["ایاز"、0,0,0]、["استفادهاز "、0,0,0]、["رااز "、0,0,0]]、[[0,2]]、" of "]] ,,,, 16]
どうすれば解決できますか?

4

3 に答える 3

1

他のすべての回答、および:データベース接続URLは次のようになります。

jdbc:mysql://localhost/mydatabase?useUnicode=true&characterEncoding=UTF-8

これにより、ドライバーもUTF-8で通信できるようになります。

重要

in = new BufferedReader(new InputStreamReader(t.getInputStream(), "UTF-8"));

google Translateに対するStackOverflowの回答で、ヘッダーには正しいエンコーディングを受け取るための言語が指定されていることがわかりましたが、すべて問題ありません。

于 2012-06-04T11:34:08.297 に答える
0

テーブルフィールドは、ペルシア文字をサポートしない文字セットで定義されています(おそらく、Latin1

それらをサポートする文字セットに変換する必要があります。

ALTER TABLE en_db MODIFY meaning VARCHAR(100) CHARACTER SET UTF8;

(フィールドごとに個別に)、または

ALTER TABLE en_db CONVERT TO CHARACTER SET UTF8;

(すべてのフィールド)。

于 2012-06-04T11:24:36.377 に答える
0

MySqlDBがどのように構成されているかを確認してください。

次の記事をご覧ください:http://dev.mysql.com/doc/refman/5.0/en/charset-unicode.html

エンコーディングは、グローバル(DBごと)またはテーブルごとに構成できます。

CREATE TABLE `mytable` (
.................
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
于 2012-06-04T11:27:03.520 に答える