1

我在尝试为我的观点生成测试时遇到了麻烦。我有一个观点,它在表单的给定输入中消耗一些字符。那些字符被提交给数据库,没有问题。

我所尝试的只是生成一个测试,以确保接受来自不同语言的不同字符。

我测试了这个:

捷克语 jazyk neboli čeština

此输入正确地从 HTML 表单中获取,并存储在 DB 中。当我尝试从测试中设置这个时,会发生一些奇怪的事情,并且视图会抛出一个错误,说

警告:不正确的字符串值:第 1 行的列 'title' 的 '\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(确保它来自你的文本编辑器)

第二:代替

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'

这是检查字符 unicode 代码的有用页面

希望这可以帮助!

于 2013-06-13T15:06:49.733 回答