0

私はこれをしばらく検索しましたが、どれも十分に関連していないようです。

基本的に、プログラムから抽出された csv ファイルがあります。データベースにインポートできるように、csvファイルをsqlファイルに変換する簡単なpythonプログラムを作成しました。次に、Windows コマンド プロンプトを使用して .sql ファイルをリモートの MySQL サーバーにインポートします。

データベースのいくつかのフィールドにポンド記号 (£) があります。csv ファイルでは £ として表示され、結果の sql ファイル (変換後) では \£ として表示されます。これは、re.escape を使用したためです。実際には、これが理由である可能性があると考えています (Python コードこれをファイルに書き込みます: for row in csvReader: ...other stuff... sqlfile.write(re.escape(row[6]))。

ファイルをインポートした後、テーブルを表示すると、ポンド記号が ? として表示されます。テーブル内、および内容が Web サイトに表示されているときは、php を使用してクエリを実行します。データベース サーバー接続照合は utf8_general_ci で、次のコマンドでリモート サーバーに接続しています: mysql --host=HOST --user=USER --password=PASS --default-character-set=utf8 DATABASENAME < filetoimport.sql

予想通り、Firefox で文字エンコーディングを変更しても違いはありませんでした。

正直なところ、文字セット全体がどのように機能するかを完全に理解しているとは言えません。これまでこのような問題を実際に試して修正する必要がなかったので、他に何を試したらよいかわかりません。これまでの私の検索は私を助けていないようです:(

ありがとうございました!

4

1 に答える 1

0

mysql のエスケープ機能を使用します。Mysqldb は次のようなものです。

conn.escape_string()
于 2012-06-18T00:37:19.737 に答える