1

ビューのテストを生成しようとすると問題が発生します。私は、フォームからの特定の入力でいくつかの文字を消費するビューを持っています。その文字は問題なく DB にコミットされます。

私が試みたのは、さまざまな言語のさまざまな文字が受け入れられることを確認するためのテストを生成することだけでした。

私はこれをテストしました:

Český jazyk neboli čeština

この入力は HTML フォームから正しく取得され、DB に格納されます。テストからこれを設定しようとすると、奇妙なことが起こり、view がエラーをスローして、

警告: 不正な文字列値: 行 1 の列「タイトル」の「\xC4\x8Cesk\xC3...」

私のコードは次のように簡単です:

str1 = "Český jazyk neboli čeština"
self.client.post(url, {"title": str1})

そして、すべての組み合わせを試しました:

str1 = u"..."
str1 = str1.encode('utf-8')
str1 = str1.decode('utf-8')

成功せずに。

何が欠けているのか誰か教えてもらえますか?

前もって感謝します

4

1 に答える 1

0

まず第一に、スクリプトの最初にこれが含まれていることを確認してください。

#-*- coding: utf-8 -*-

これは、このファイルのエンコーディングがutf-8(テキスト エディターからのものであることを確認してください) であることをインタープリターに伝えるためです。

2番目:代わりに

str1 = "Český jazyk neboli čeština"

次のように str1 を Unicode として宣言します。

str1 = u"Český jazyk neboli čeština"

ここで、ASCII 以外の文字を含めたい場合は、文字の代わりに適切な Unicode コードで宣言して、奇妙なエンコーディングの問題を回避することをお勧めします。

str1 = u'\u010cesk\xfd jazyk neboli \u010de\u0161tina'

文字のユニコードコードを調べるのに便利なページです

お役に立てれば!

于 2013-06-13T15:06:49.733 に答える