1

Django を使用して MYSQL に処理する Excel スプレッドシートが多数あります。CSV として保存し、ファイルを処理します。私が抱えている問題は、フィールドにさまざまな 16 進文字が含まれていることです。それらが登場したときにPythonでそれらを置き換えようとし始めましたが、機能しなくなりました。

例として、1 つのフィールドに文字「Â」が含まれており、レコードを MYSQL に保存すると、次のエラーが発生します。

警告: 不正な文字列値: 行 1 の列 '説明' の '\xC2A sim...'

MYSQL のフィールド タイプを ucf8_general_ci に変更しようとしましたが、問題は解決しませんでした。

以下の reformat_content 関数で文字列を実行して unhexlify を試してみましたが、違いはありません。

def asciirepl(match):
  # replace the hexadecimal characters with ascii characters
  s = match.group()  
  return binascii.unhexlify(s[2:]) 

def reformat_content(data):
  p = re.compile(r'\\x(\w{2})')
  return p.sub(asciirepl, data)

16進文字の全範囲でこれを解決する方法についてのアイデアはありますか?

どうもありがとう

リッチ

4

0 に答える 0