首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django 'ascii‘编解码器不能编码字符u'\uff1f’

Django 'ascii‘编解码器不能编码字符u'\uff1f’
EN

Stack Overflow用户
提问于 2016-10-10 14:44:16
回答 1查看 1.2K关注 0票数 0

我还是django的初学者。

当我保存到数据库中时,我得到了这个错误。

‘'ascii’编解码器不能将字符u'\uff1f‘编码在第14位置:序数不在范围(128)

虽然我在这里看到过类似的问题,但我已经尝试过了,但这仍然是不可能的。

UnicodeEncodeError:'ascii‘编解码器不能在0位置编码字符u’\xef:序数不在范围内(128个)

我相信这是发生在这个数据‘英语’。

我应该换views.py还是串行化?

我的观点是

代码语言:javascript
复制
class DialogueView(APIView):
    permission_classes = (IsAuthenticated,)

    def post(self, request):

        data = request.data
        serializer = DialogueSerializer(data=request.data)
        if not serializer.is_valid():
            return Response(serializer.errors, status=
                status.HTTP_400_BAD_REQUEST)
        else:
            owner = request.user
            t = Dialogue(owner=owner, english=data['english'])
            t.save()
            # request.data['id'] = t.pk # return id
            return Response(status=status.HTTP_201_CREATED)

我的序列化程序是

代码语言:javascript
复制
class DialogueSerializer(serializers.ModelSerializer):

    sound_url = serializers.SerializerMethodField()

    class Meta:
        model = Dialogue
        fields = ('id','english','myanmar', 'sound_url') 

    def get_sound_url(self, dialogue):
        if not dialogue.sound:
            return None

        request = self.context.get('request')
        sound_url = dialogue.sound.url
        return request.build_absolute_uri(sound_url)
EN

回答 1

Stack Overflow用户

发布于 2016-10-10 15:15:22

可能是DB不接受Unicode值作为字符串字段。

要解决这个问题,可以尝试两种方法:

  1. 将DB配置更改为使用unicode编码。例如,mysql的这个职位
  2. 在存储到DB之前对该unicode值进行编码。尝试将值转换为:val = data['English']并将val存储到您的模型中。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39960921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档