Unicode データを外部 Web サービスに保存しようとしています。
を保存しようとすると、外部システムにæ-ø-å
保存されます。æ-ø-Ã¥
編集:
(私の名の値はJørn
) (django からの値J\\xf8rn
)
firstname.value=user_firstname
=Jørn
エンコードを使用しようとした場合の結果は次のとおりです。
firstname.value=user_firstname.encode('ascii', 'replace')
=J?rn
firstname.value=user_firstname.encode('ascii', 'xmlcharrefreplace')
=Jørn
firstname.value=user_firstname.encode('ascii', 'backslashreplace')
=J\xf8rn
firstname.value=user_firstname.encode('ascii', 'ignore')
= ignore を使用すると Unicode エラーが発生します。
ユーザーを更新するための私のフォーム:
def show_userform(request):
if request.method == 'POST':
form = UserForm(request.POST, request.user)
if form.is_valid():
u = UserProfile.objects.get(username = request.user)
firstname = form.cleaned_data['first_name']
lastname = form.cleaned_data['last_name']
tasks.update_webservice.delay(user_firstname=firstname, user_lastname=lastname)
return HttpResponseRedirect('/thank-you/')
else:
form = UserForm(instance=request.user) # An unbound form
return render(request, 'myapp/form.html', {
'form': form,
})
これが私の仕事です:
from suds.client import Client
@task()
def update_webservice(user_firstname, user_lastname):
membermap = client.factory.create('ns2:Map')
firstname = client.factory.create('ns2:mapItem')
firstname.key="Firstname"
firstname.value=user_firstname
lastname = client.factory.create('ns2:mapItem')
lastname.key="Lastname"
lastname.value=user_lastname
membermap.item.append(firstname)
membermap.item.append(lastname)
d = dict(CustomerId='xxx', Password='xxx', PersonId='xxx', ContactData=membermap)
try:
#Send updates to SetPerson function
result = client.service.SetPerson(**d)
except WebFault, e:
print e
データを正しく保存するにはどうすればよいですか?