how to send a non-english word (chinese) email using django
if i use a chinese word subject :
subject = u'邮件标题'
it will be show error :
UnicodeDecodeError at /account/login_view/
'utf8' codec can't decode bytes in position 0-1: invalid data
what can i do about it ,
thanks
updated
def register_view(request):
if request.method == 'POST':
form = SignupForm(request.POST)
if form.is_valid():
# Process the data in form.cleaned_data
# ...
username = form.cleaned_data['username']
password = form.cleaned_data['password']
email = form.cleaned_data['email']
user = User.objects.create_user(username, email, password)
send_html_mail(subject, html_content, [email])
if user is not None:
user.save()
#return HttpResponse(simplejson.dumps({'msg':'ok'}))
return HttpResponseRedirect("/")
else:
return HttpResponseRedirect("/account/register_view")
else:
form = SignupForm() # An unbound form
return render_to_response('accounts/register_view.html',{'form': form,})
def login_view(request):
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(username=username, password=password)
if user is not None:
开发者_如何学Go if user.is_active:
login(request, user)
return HttpResponseRedirect("/")
else:
return HttpResponse('user is not active')
else:
#return HttpResponseRedirect("/account/login_submit")
return HttpResponse('No this username . and <a href="/">return to homepage</a>')
else:
form = LoginForm() # An unbound form
return render_to_response('accounts/login_view.html',{'form': form,})
How are you sending the subject. You should encode it to utf-8 before sending.
subject.encode('utf-8')
or
import codecs
subject = codecs.utf_8_encode(subject)
And then send it to your view.
it is ok now :
i use Programmer’s Notepad 2 to Encoding
the py
and html
file which has chinese word .
精彩评论