Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python,我无法保存特殊字符,例如θæŋ;重新搜索后_Python_Regex_Character Encoding_Django Admin - Fatal编程技术网

python,我无法保存特殊字符,例如θæŋ;重新搜索后

python,我无法保存特殊字符,例如θæŋ;重新搜索后,python,regex,character-encoding,django-admin,Python,Regex,Character Encoding,Django Admin,我无法保存特殊字符,例如重新搜索后的θæŋ 我正在保存到Django模型文本字段。在管理页面中,我得到的不是θæŋkfəli \xce\xb8\xc3\xa6\xc5\x8bkf\xc9\x99li 是检索错误吗? 是管理员的错误吗? 我储蓄错了吗 如何搜索字符串的所需部分并使用“θæŋ”字符将其保存在模型的文本字段中 lines='title="Listen to audio" /></a><span class="pr">/<span class="un

我无法保存特殊字符,例如重新搜索后的θæŋ

我正在保存到Django模型文本字段。在管理页面中,我得到的不是θæŋkfəli

\xce\xb8\xc3\xa6\xc5\x8bkf\xc9\x99li
是检索错误吗? 是管理员的错误吗? 我储蓄错了吗

如何搜索字符串的所需部分并使用“θæŋ”字符将其保存在模型的文本字段中

lines='title="Listen to audio" /></a><span class="pr">/<span class="unicode">ˈ</span>θæŋkfəli/</span> <span class="fl">adverb' #the string which i wan to save exactly as it is, Django saves it correctly

liness=smart_str(lines, encoding='utf-8', strings_only=False, errors='replace') # saves correctly
linesu=smart_unicode(lines, encoding='utf-8', strings_only=False, errors='replace')  # saves correctly
lines='title=“Listen to audio”/>/ˈθæŋkfəli/副词'#我希望完全按原样保存的字符串,Django会正确保存它
Linesy=smart_str(行,编码为utf-8,字符串仅为False,错误为replace')#正确保存
linesu=smart_unicode(行,编码为utf-8,字符串仅为False,错误为replace')#正确保存
在尝试搜索字符串θæŋkfəli Django的一部分后,它不会保存为所需的特殊字符。我得到的不是θæŋkfəli,而是“\xce\xb8\xc3\xa6\xc5\x8bkf\xc9\x99li”

stryc=re.compile('\s*/\s*(?P.*),re.DOTALL)
#\s+/\s+\s+[\\a-zA-Z0-9\s]+/\s+'
strys=重新搜索(stryc,linesu)
Pronun=stryWordcs.groups('Pronun')
text=Pronun.encode('utf-8')#不将unicode转换为字母
Pronun=smart_str(Pronun,encoding='utf-8',strings_only=False,errors='replace')#也不会将unicode转换为字母
a=发音(field=Pronun)#或field=text
a、 保存()
#Pronun=“θæŋkfəli”,但它保存为\xce\xb8\xc3\xa6\xc5\x8bkf\xc9\x99li或unicode格式
如果我不使用smart_str,我会得到“\u03b8\xe6\u014bkf\u0259li”

如果我试图在行或行中搜索,我无法找到θæŋkfəli,因为特殊字符ˈ(顶部的小棍=\xcb\x88=\u02c8)

问候,, gintare

当你看到
“\xce\xb8\xc3\xa6\xc5\x8bkf\xc9\x99li
时,你所看到的事实上与θæŋkfəli相同,但以十六进制表示。同样,你也可以用

U+03b8u+00e6u+014BkfU+0259li

这是因为文本存储为unicode字符串。若要查看这实际上是相同的,请尝试将文本(带有特殊字符)复制到中的顶部框中,然后点击convert。Python可以,但取决于您使用的字符显示方式,它的输出方式会有所不同

我不完全确定您的问题是什么。如果您担心正则表达式能够精确匹配unicode字符,python的
re
模块可以选择

如果您关心文本的显示方式,则会根据您试图显示文本的方式而有所不同,您需要更具体地说明您的问题

不过,我可以向您保证,Django正在存储您的字符串

stryc=re.compile('<span\s*class=\"pr\">\s*/\s*<span\s*class="unicode\">(?P<Pronun>.*)<span\s*class=\"fl\">', re.DOTALL)
                    #\s+/\s+<span class=\"unicode\">\s+[\\a-zA-Z0-9\s]+/\s+</span> '
strys=re.search(stryc, linesu)

Pronun=stryWordcs.groups('Pronun')
text=Pronun.encode('utf-8') # does not covert unicode to letters
Pronun=smart_str(Pronun, encoding='utf-8', strings_only=False, errors='replace') # also does not covert unicode to letters
a=Pronunciation(field=Pronun) # or field=text
a.save()
# Pronun=  "θæŋkfəli", nevertheless it is saved as  \xce\xb8\xc3\xa6\xc5\x8bkf\xc9\x99li or in unicode