0
私のMySQLデータベースにデータを挿入するときに奇妙な記号が表示されています。MySQLの奇妙な文字
テーブルがUTF8_binを使用するように設定されています。シンボルは
Landon?ÇÖs
のような?COが'
ことになっています。
私はそうのようなスクリプトからMySQLのテーブルのすべての行を渡しています:
insert = ("INSERT INTO #{event.split(" : ")[0]} (`Date`, `Start`, `End`, `Location`, `Details`, `Map`) VALUES (#{event.split(" : ")[1]});").to_s
client = Mysql2::Client.new(:host => "hostInfo", :username => "usName", :password =>"usPass", :database => "dbName")
client.query(insert)
client.close
はまた、私が接続し、データベースに情報を渡すためにmysql2の宝石を使用しています。
私はいくつかの掘り出しを行いました。特別なcharを別のcharに置き換えようとすると、この出力が表示されます。コンソールが互換性のない文字エンコーディングを出力しているというエラーメッセージは、以下のとおりです。
(Encoding :: CompatibilityError)
テーブルはutf8でもかまいません。 ruby-> db接続はどうですか?ルビ - >出力環境はどうですか? iso8859ディスプレイシステムにそれをダンプすると、utf8テキストを持つのに役立ちません。 –
Marcでは、db接続はデフォルトのエンコーディングだけで設定されています。私は100%アウトプットエンコーディングが何であるかは確かではありませんが、処理されている情報はコンソール側でユーザーに見えるように表示されていません。 –
文字はテーブル自体に '?ÇÖ'を表示していますか?もともとデータを挿入しているものであれば、元のデータを正しく挿入していることを確認してください。 ENTIRE処理チェーンは、全体を通して同じ文字セットを維持するか、または「境界」で適切な変換ロジックを持たなければなりません。 –