0

次のようなユニコード文字で何かを検索したいŞÇİÖÜ

次のような検索関数を定義します。

def search(request):
    from django.db.models import Q
    q = request.GET.get("search", "")
    k = q.split()
    list=[]
    for i in k:
        query = Q(title__icontains=i) | Q(content__icontains=i) 
        posts = Post.objects.filter(query).distinct().order_by('date')
        list.append(posts)
        total = 0
        if list[0]:
            total += len(list)

    return render_to_response('search_results.html', RequestContext(request, {
        "list": list,
        "q": q,
        "total": total,
    }))

私は持っていLANGUAGE_CODE = "UTF-8"ます。私が検索したいとき、私は投稿し'Şeker Öçü'ていますが、何も返されません。şeker öçü

4

1 に答える 1

0

から取得するクエリ文字列はrequest.GET.get("search", "")にありますISO-8859-8が、Django のデフォルトのエンコーディングは UTF-8 です。

正しい Unicode データを取得するには、または のいずれDEFAULT_CHARSETHttpRequest.encodingを変更する必要があります。ISO-8859-8( https://docs.djangoproject.com/en/dev/ref/settings/#default-charset )

于 2012-11-13T12:39:42.447 に答える