request.POST.get('resp_162')
unicode
オブジェクト(Unicode文字列)を返します得ることはありません - またはNone
が、まあ、それは別の問題です。 str
オブジェクト(バイト列)に変換するには、、つまりrequest.POST.get('resp_162').encode("utf-8")
を使用してバイトストリングコーデックにエンコードすることによって、str(request.POST.get('resp_162'))
-またはに渡すことで2つの方法があります。最初のソリューションは 'ascii'コーデックを使用し、2番目はコーデックを使用します。
あなたはstr
にごunicode
文字列を渡す最初だと、それはあなたがこの時点でUnicodeEncodeError
を取得し、非ASCII文字が含まれているため。 IOW:2番目のソリューションを使用するだけでエラーは発生しません。
Djangoは内部的にユニコード文字列(モデル、フォーム、リクエストなどから得られるもの)のみを使用していますが、唯一の賢明なアプローチは、システムの入力時にバイト文字列をデコードすることですシステム出力時にそれらを所望の符号化に符号化する)。私はl.answer
がスニペットに含まれているかどうかわかりませんが、 'l'(非常に悪い命名方法FWIW)がモデルインスタンスで、.answer
というテキストフィールドの場合は、すでにunicode
という文字列なので、バイト文字列。
[ASCIIエンコーディングでは文字をエンコードできません。序数は範囲外です(128) "](http://stackoverflow.com/questions/2513027/encoding-gives-ascii-codec-カント - エンコード - 文字 - 順序 - not-range128) – Sayse
なぜそれをテキストとして保持するのではなくバイトテキストに変換しようとしていますか? –
私は '.encode(' utf-8 ')を使って試してみましたが、同じエラーが発生します – HenryM